0

フォームに2つのボタンがあります。

<input id="apply" type="submit" class="smgreen" name="apply" value="Apply">
<input id="cancel" type="submit" class="smred" name="cancel" value="Cancel">

フォームをライブで検証し、[適用]ボタンをクリックする必要がありますが、[キャンセル]ボタンをクリックすると必要ありません。どうすればいいですか?

私のJS:

f = {};
$('.required').each(function() {
  var id = $(this).prop('id');
  f[id] = new LiveValidation(id, { validMessage: "ok", wait: 500 } );
  f[id].add( Validate.Presence, { failureMessage: "error" } );
});
4

2 に答える 2

0

「キャンセル」を「送信」ボタンにしないことをお勧めします。考えてみてください...キャンセルしたい場合は、実際には何も送信していません。

また、複数の送信ボタンを使用する場合は、より一般的な名前を付けてください。

<input id="apply"  type="submit" name="action" value="Apply" />
<input id="cancel" type="submit" name="action" value="Cancel" />

JavaScriptに関する限り、ボタンクリックではなく、フォーム送信で検証してください。

$('#myForm').on('submit', function(e) {
    e.preventDefault();

    // do validation stuff
    if( valid ) {
        $(this).submit();
    } else {
        // do something about your errors
    }
});
于 2013-02-19T18:02:06.147 に答える
0

次のように、送信ボタンにハンドラー イベントを追加できます。

$('#apply').click(function(){
 f = {};
 $('.required').each(function() {
   var id = $(this).prop('id');
   f[id] = new LiveValidation(id, { validMessage: "ok", wait: 500 } );
   f[id].add( Validate.Presence, { failureMessage: "error" } );
 });
});
于 2013-02-19T17:57:07.230 に答える