jQuery 検証プラグイン: 指定された送信ボタンの検証を無効にする 質問する

jQuery 検証プラグイン: 指定された送信ボタンの検証を無効にする 質問する

Jörn Zaeffere の優れた jQuery Validation プラグインを使用して、検証している複数のフィールド (カスタム検証用に追加されたメソッドを含む) があるフォームがあります。指定された送信コントロールで検証を回避するにはどうすればよいでしょうか (つまり、一部の送信入力で検証を実行し、他の入力では検証を実行しない)。これは、標準の ASP.NET 検証コントロールを使用した ValidationGroups に似ています。

私の状況:

これは ASP.NET WebForms で発生しますが、必要に応じて無視できます。ただし、私は検証を「推奨」として使用しています。つまり、フォームが送信されると検証が実行されますが、「必須」メッセージが表示される代わりに、「次のフィールドが不足しています...それでも続行しますか?」のような「推奨」が表示されます。その時点で、エラー コンテナーに別の送信ボタンが表示され、押すと検証を無視して送信されます。このボタン コントロールのフォーム .validate() を回避して送信するにはどうすればよいでしょうか。

家の売買サンプルhttp://jquery.bassistance.de/validate/demo/multipart/前のリンクをヒットするためにこれを可能にしますが、これはカスタム メソッドを作成してバリデーターに追加することで実現されます。検証プラグインに既にある機能を複製するカスタム メソッドを作成しなくても済むようにしたいと思います。

以下は、私が現在持っている、すぐに適用できるスクリプトの短縮版です。

var container = $("#<%= Form.ClientID %> div.validationSuggestion");

$('#<%= Form.ClientID %>').validate({          
    errorContainer: container,
    errorLabelContainer: $("ul",container),
    rules: {
        <%= YesNo.UniqueID %>: { required: true },
        <%= ShortText.UniqueID %>: { required: true } // etc.

    },
    messages: {
        <%= YesNo.UniqueID %>: 'A message.',
        <%= ShortText.UniqueID %>: 'Another message.' // etc.
    },
    highlight: function(element, errorClass) {
        $(element).addClass(errorClass);
        $(element.form).find("label[for=" + element.id + "]").addClass(errorClass);
        $(element.form).find("label[for=" + element.id + "]").removeClass("valid");
    },
    unhighlight: function(element, errorClass) {
        $(element).removeClass(errorClass);
        $(element.form).find("label[for=" + element.id + "]").removeClass(errorClass);
        $(element.form).find("label[for=" + element.id + "]").addClass("valid");
    },
    wrapper: 'li'
}); 

ベストアンサー1

cancel送信ボタンにCSSクラスを追加して検証を抑制できます。

例えば

<input class="cancel" type="submit" value="Save" />

この機能の jQuery Validator ドキュメントは、こちらを参照してください。送信時の検証をスキップする


編集:

上記の手法は非推奨となり、formnovalidate属性に置き換えられました。

<input formnovalidate="formnovalidate" type="submit" value="Save" />

おすすめ記事