0

2 つのフォーム フィールドがあり、両方に値がある場合にのみ、jquery を使用してこれらの値を投稿したいと考えています。私はこれを試しましたが、もっと良い方法があるはずです。この方法ではエラーが発生する可能性があると思います

$('#RFID').change(function(e){          

    if($(this).val() != '' && $('#STATION_ID').val() != ''){                

    }
});
4

3 に答える 3

3

それは特に悪いアプローチではありません。少しはきれいになるかもしれませんが。私は次のようなものに行きます:

var $fields = $('#RFID, #STATION_ID').change(function(e) {
    if ($fields[0].val() && $fields[1].val()) {
        // post it
    }
});


編集: 上記のコードは、両方の値を取得したらすぐに投稿したいと想定していました。あなたの質問をもう一度見ると、私の読み方が間違っているかもしれません。両方の値を持っていない限り、フォームが投稿されないようにするだけなら、次のようにする必要があります。

$('form').submit(function(e) {
    if (!$fields[0].val() || !$fields[1].val()) e.preventDefault();
});
于 2012-05-10T13:47:17.477 に答える
1

投稿する前に、同じチェックを行うだけです。

if ($.trim($('#RFID').val()) != '' && $.trim($('#STATION_ID').val()) != '') {
    // do post
}
于 2012-05-10T13:47:24.060 に答える
0

おそらく、フォームの自動送信を生成できるすべてのフィールドに on change ハンドラーを割り当てるでしょう。

おそらく、自動送信に参加できる各フィールドに対してクラスを追加します。

私が知っているコードはもう少しありますが、インテントを設定し、検証をすべて 1 か所で収集します。

それが役に立てば幸い。

$('.auto-submit').change(function(e) {
  // collect all the auto submit fields and make sure they are not empty
  for( field in $('.auto-submit') )
     if( field.val() == '' ) return;   // all fields not there
  }
  // do form submit here
} );
于 2012-05-10T13:54:39.517 に答える