1

基本的に、このフォームを数回繰り返し、それぞれに独自の送信ボタンを付けています。この状況では、フォームのすべての選択ボックスを 1 つのフォームに結合することはできません。

<form method="post" action="">
  <select name="hour" class="hour">
     // option tags
  </select>
  <select name="minutes" class="minutes">
    // option tags
  </select>
<input type="submit" name="submit" class="submit">
</form>

AJAX を使用して te 値を処理しています。

$(".submit").click(function() {
   var hour = $(".hour").val();
   var minutes = $(".minutes").val();
// AJAX code here
});

ただし、変数 'hour' と 'minutes' は、最初のフォームの選択ボックスの値のみを保持します。送信ボタンが 3 番目のフォームの 2 番目にクリックされた場合、これらの変数に正しい値を設定するにはどうすればよいですか?

4

2 に答える 2

2

あなたはこれを行うことができます:

$(".submit").click(function () {
    var $form = $(this).closest('form');
    var hour = $form.find(".hour").val();
    var minutes = $form.find(".minutes").val();
    // AJAX code here
});

送信ボタンをクリックすると、最も近いものに移動し、formその中の選択リストを見つけて、それに応じてそれぞれの値を取得します。そして、データを処理できます。

于 2013-06-01T18:02:16.400 に答える
2

コンテキストを追加します。例:

$(".submit").click(function() {
   var hour = $(".hour", $(this).parent()).val();
   var minutes = $(".minutes", $(this).parent()).val();
// AJAX code here
});

編集: このコードは、例としてのみ使用します。DOM 構造が異なる場合は、変更が必要になる場合があります。

また、「クリック」の代わりに「送信」イベントをフォームに使用することもできます。この場合$(this)、コンテキストとして使用できます。

于 2013-06-01T18:04:05.253 に答える