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
});

但是,变量“小时”和“分钟”将仅保存第一个表单中选择框的值。如果在第二个、第三个表单上单击提交按钮,我怎样才能让这些变量具有正确的值?

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 回答