我正在使用 JQuery 和引导程序编写一个 ASP.NET MVC 4 应用程序。
我的网站中有一个模态对话框功能,直到最近另一位开发人员在网站上进行了一些与样式相关的更改时,它才能正常工作。
以下是我在其中一个部分视图中编写的代码,我在 JQuery 对话框中打开它:
@using (Ajax.BeginForm("ChangeStatus",
new AjaxOptions { UpdateTargetId = "AboutOrderContainer", HttpMethod = "POST" }))
{
@Html.HiddenFor(m => m.OrderId)
<table class="row-fluid">
<tr>
<td></td>
</tr>
<tr>
<td>
Comments (Optional):
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td>
@Html.TextAreaFor(m => m.Comments, new { @maxlength = 255, @rows=5 })
</td>
</tr>
<tr>
<td>
<center>
<input type="submit" title="OK" value="OK" class="btn" />
</center>
</td>
</tr>
</table>
}
这在早期工作正常,因为每当用户点击“确定”按钮时,都会调用“ChangeStatus”操作,并且视图正在刷新。
但是现在,在该开发人员进行了一些更改之后,“ChangeStatus”会异步命中两次,从而导致运行时错误。我不确定是什么导致了这个问题。
以下是加载此对话框时加载的脚本文件:
- ajax.dialog.custom.js
- 引导程序.js
- jquery-1.9.1.js
- jquery-migrate-1.1.1.js
- jquery-ui-1.10.2.js
- jquery-unobtrusive-ajax.js
- jquery.validate.js
- jquery.validate.unobtrusive.js
- 现代主义-2.5.3.js
- onmediajquery.js
- 电子商务网站-custom.js
所有脚本文件(ecommercesite-custom.js 除外)都是来自 JQuery 和引导站点的库。以下是 ecommercesite-custom.js 文件的代码:
$(document).ready(function () {
$('input[class*=btn-submit]').click(function (event) {
if (($(this).closest('form').valid())) {
$(this).attr("disabled", true);
$(this).closest('form').submit();
}
else {
$(this).attr("disabled", false);
}
});
});
我不确定这里有什么问题。我试过删除上面的 js 文件(即第 11 号文件),但没有帮助。因此,您可以在考虑解决方案时忽略上述文件的任何含义。
有人有什么想法吗?重申在其他开发人员更改某些样式功能之前,相同的代码运行良好。