1

検証が正しく機能している非常に複雑なフォームがあります。ただし、検証が完了するまでに時間がかかることがあるため、混乱や二重送信を防ぐために、フォームの送信ボタンをクリックしたときに blockUI が呼び出されるようにしたいと考えています。これを行う方法がよくわかりません。

私のコードは次のようになります。

$("#credential").validate({
     rules: {
              EngId: {
                 required: true
                 }
             ClientAccount: {
                 required: true
                 }
              ...
        }

フォームでの選択に応じて (クリック機能を使用して) いくつかのボタンで検証を呼び出しており、多くの場合、いくつかのルールを無効にしています。

$("#buttonname").click(function() {
   $("#fieldname").rules("remove");
   ...
   $("#credential").submit();
});

私が理解できないのは、ユーザーがボタンをクリックすると、検証が開始される前にblockuiがその魔法を実行し、検証が問題を発見した場合、unblockuiが呼び出されてフォームを再び有効にするように、blockuiとunblockuiの呼び出しがどこに行くのかということです.

私は Jquery にかなり慣れていないので、うまく実装できた例が見つかりません。どなたかの助けをいただければ幸いです (これが以前に取り上げられていた場合はご容赦ください)。

4

1 に答える 1

0
$(document).ready(function() {
    $('#form1').validate({
        rules: {
            fieldone: { required: true },
            fieldtwo: { required: true }
        },
        submitHandler: function(form) {
            $(form).block();
            form.submit();
        }
    });

    $('input:checkbox[name=toggleone]').click(function() {
        if ($(this).is(':checked')) {
            $('input[name=fieldone]').rules('add', { required: true });
        } else {
            $('input[name=fieldone]').rules('remove');
        }
    });

    $('#altsubmit').click(function() {
        $('input[name=fieldtwo]').rules('remove');
        $('#form1').submit();
    });
});

Validate、blockui、および動的ルールを使用して動作するフォームを示すページをまとめました。

于 2010-03-09T10:30:33.327 に答える