-1

.Net アプリケーションで jquery 検証プラグインを使用しており、ページ内で検証する必要があるグループが多数あります。を使用してグループを検証しています

$("#aspnetForm").validate().element("#elementname");

問題は、アプリケーションで必須のサーバー側ボタンが多数あり、そのうちのいくつかは ajax 対応で、他は正常です。ページ内の任意のボタンをクリックすると、ページ内のすべての要素が検証されます。これを克服したいと考えています。クラス「キャンセル」を追加することで、検証をスキップできることはわかっていますが、それでも私の場合は十分ではありません。たとえば、何度も更新できるキャプチャ更新ボタンがあります。この場合、検証は 1 回だけスキップされ、その後のクリックで再度検証がトリガーされます。

ボタンからすべての検証トリガーを削除するか、不要なボタンにキャンセルクラスを追加する代わりに、いくつかのクラスを持つ特定のボタンでのみ検証をトリガーするのを手伝ってください。

4

1 に答える 1

0

jQuery Validate プラグインは、タグ内に含まれるclick任意のボタンのイベントを自動的にキャプチャします。これを止める唯一の方法は、 でボタンを使用しないことです。type="submit"<form>type="submit"

<form>
    ....
    <button type="submit">button</button>
    <input type="submit" />
</form>

デフォルト動作のデモ: http://jsfiddle.net/EhGQ5/


または、ボタンを に変更してから、特定のボタンの をtype="button"手動でキャプチャすることもできます。その後、メソッドclickを使用して手動で検証をトリガーできます。この例では、2 番目のボタンのみが検証をトリガーします。.valid()

<form>
    ....
    <button type="button">button</button>
    <input type="button" value="button" id="submit" />
</form>

jQuery:

$(document).ready(function() {

    // this initialization may happen automatically within your framework
    $('#myform').validation({  // normal initialization
        // rules & options
    });

    // manually trigger a validation test using a specific button
    $('#submit').on('click', function() {
        $('#myform').valid();  // trigger form validation test
    });

});

手動でトリガーされた検証のデモ: http://jsfiddle.net/EhGQ5/2/

于 2013-11-14T16:22:28.153 に答える