JQuery とブートストラップを使用して ASP.NET MVC 4 アプリケーションを作成しています。
私のサイトには、別の開発者が Web サイトでスタイリング関連の変更を行った最近までスムーズに機能していたモーダル ダイアログ機能があります。
以下は、部分ビューの 1 つで記述したコードです。これを 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>
}
ユーザーが「OK」ボタンを押すたびに「ChangeStatus」アクションが呼び出され、ビューが更新されていたため、これは以前は正常に機能していました。
しかし今、その開発者がいくつかの変更を行った後、「ChangeStatus」が非同期で 2 回ヒットし、実行時エラーが発生します。何が問題を引き起こしているのかわかりません。
以下は、このダイアログのロード中にロードされるスクリプト ファイルです。
- ajax.dialog.custom.js
- ブートストラップ.js
- jquery-1.9.1.js
- jquery-migrate-1.1.1.js
- jquery-ui-1.10.2.js
- jquery-目立たない-ajax.js
- jquery.validate.js
- jquery.validate.unobtrusive.js
- modernizr-2.5.3.js
- onmediajquery.js
- ecommercesite-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番)を削除しようとしましたが、役に立ちませんでした。そのため、解決策を考えるときは、上記のファイルの影響を無視できます。
誰でも何か考えがありますか?他の開発者がスタイリング機能を変更するまで、同じコードが非常にうまく機能していたという事実を繰り返します。