我想让Ajax.BeginForm调用一个函数,然后将它传递回序列中的最后一个选项卡,并从那里追加一个表。Ajax.BeginForm将Json数据传递回Jq UI选项卡
这将是基本的局部视图...
<script type="text/javascript">
$(function() {
$("#searchPatient").tabs();
});
function switchToResultTab(data) {
$('a[href="#retTable"]').click();
debugger;
$("#list").setGridParam({
datatype: 'jsonstring',
datastr: data,
caption: 'Patient Search Result'
}).trigger("reloadGrid");
};
function failToTab(data) {
alert("");
$("list").setGridParam({
datatype:'jsonstring',
caption: 'Patient Search Result',
datastr:data
}).trigger("reloadGrid");
};
</script>
<div id="searchPatient" style="display:inline; float:inherit; width:100%">
<ul>
<li><a href="#searchByMRN">Search By MRN</a></li>
<li><a href="#searchByDemographics">Search By Demo</a></li>
<li><a href="#retTable">Return Table</a></li>
</ul>
@Html.Partial("_SearchByMRN")
@Html.Partial("_SearchByDemographic")
@Html.Partial("_RetTable")
</div>
这将是怎样,我异步调用我的功能......一切正常了这一点......
@using(Ajax.BeginForm("SearchByDemographic",
"SearchPatients",
null,
new AjaxOptions{
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
LoadingElementId = Url.Content("~/Images/ajax-loader.gif"),
UpdateTargetId = "retTable",
OnSuccess = "switchToResultTab(data)",
OnFailure = "FailToTab"
},
new{
id = "formSearchByMRN"
}
)
)
在完成之后,我期望调用onSuccess中列出的switchToResultTab函数......部分脚本中已经有调用.tabs()jquery方法的脚本。唯一的问题是我从来没有进入这个功能?我从来没有打过调试器,所以这是告诉我,有什么事情正在发生,我从来没有称这个功能... 我做错了什么?
UPDATE:我调试这个事情,我试图弄清楚发生了什么 好了,所以我一直在调试这个东西,它似乎认为我的jQuery函数永远不会被激活。看来我的表单正在做一个实际的提交而不是ajax提交。这是我迄今可以推测的。我完全不知道为什么会发生这种情况。 继续 * UPDATE:尝试不同的THINGS *一对夫妇 次要更新...与Ajax.BeginForm挣扎后,我回到我的老尝试和真正的Html.BeginForm方法,我写我自己的jQuery的功能。 ..
$('#searchByDemographics').submit(function() {//#formSearchByMRN,
if ($(this).valid()) {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (result) {
$('#retTable').html(result);
switchToResultTab(result);
}
});
}
return false;
});
在这两种情况下,它似乎在某种程度上或其他我的jQuery库是由当时我走到这一步不再加载...它有一个confict某种方式与jQuery的图书馆之一我已经加载...也许事实上,我有jqgrid加载在最后一个选项卡导致某种冲突?
Microsoft JScript运行时错误:Obj ect不支持属性或方法'有效' Microsoft JScript运行时错误:'jQuery'未定义 解释我得到的第一个异常,我用Html.BegingForm切换了Ajax.begin表单,然后我写了一个jQuery函数,然后我试过你的例子,那是我得到的第二个异常,我不明白的是显然我的jquery没有被加载。 :沮丧: – SoftwareSavant 2012-07-18 11:59:24
生病更新我原来的帖子,以反映我的尝试。 – SoftwareSavant 2012-07-18 11:59:48
您是否包含'jquery.validate.js'和'jquery.validate.unobtrusive.js'脚本?如果您正在进行不引人注目的客户端验证,那么这些都是必需的。我想你只包括第二个,但忘了包含'jquery.validate.js'。 – 2012-07-18 12:00:28