4

いくつかのデータ フィールドを持つフォームがあります。それぞれに、クライアント側の迅速な検証チェックがあります。次に、送信ボタンがあります。

@using (Html.BeginForm("ImportApi", "EveApi", FormMethod.Post, new { id = "register-form" }))
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)
    <ol>
        <li>
            @Html.LabelFor(m => m.KeyId)
            @Html.TextBoxFor(m => m.KeyId)
            @Html.ValidationMessageFor(m => m.KeyId)
        </li>
        <li>
            @Html.LabelFor(m => m.vCode)
            @Html.TextBoxFor(m => m.vCode)
            @Html.ValidationMessageFor(m => m.vCode)
        </li>
    </ol>
    <input type="submit" id="register-btn" value="Register" data-loading-text="Loading..." />
}

私は現在持っています:

$('#register-form').submit(function () {
    $('#register-btn').button('loading');
    return true;
});

フォームが送信されたときにボタンをテキストの読み込みに変更します。ただし、クライアント側の検証が失敗した場合でもこれが行われ、ページが再読み込みされないため、無期限に「読み込み中」状態のままになります。

$('#register-btn').button('loading');フォームが実際にサーバーに送信され、ページが更新されることが保証されている場合にのみ呼び出す方法を探しています。

4

2 に答える 2

7

valid()テキストを設定する前にメソッドを呼び出すのはどうですか?

何かのようなもの:

$('#register-form').submit(function () {
   if($(this).valid()) {
     $('#register-btn').button('loading');
     return true;
   }
});
于 2013-07-09T20:38:34.800 に答える