Javascript JQUERY使用多个表单从页面上的多个选择中获取值

Javascript JQUERY使用多个表单从页面上的多个选择中获取值,javascript,php,jquery,Javascript,Php,Jquery,我有一个页面,使用while循环创建了几个表单,每个表单有四个选择。我正在尝试找出如何检查属于当前表单(包含单击按钮的表单)的每个选项,以确认是否选择了任何选项。所有表单都封装在一个名为#audit\u content的div中 其目的是检查如果变量grade不是某个值,那么脚本将检查是否选择了任何选项 (值$i在while循环期间创建,用于唯一标识每个表单) html <form id="audit_form<? echo $i; ?>"> <

我有一个页面,使用while循环创建了几个表单,每个表单有四个选择。我正在尝试找出如何检查属于当前表单(包含单击按钮的表单)的每个选项,以确认是否选择了任何选项。所有表单都封装在一个名为
#audit\u content
的div中

其目的是检查如果变量
grade
不是某个值,那么脚本将检查是否选择了任何选项

(值
$i
在while循环期间创建,用于唯一标识每个表单)

html

    <form id="audit_form<? echo $i; ?>">
      <select name="grade" class="grade<? echo $i; ?>">
         <option value="1">1</option>
         <option value="2">2</option>
         <option value="3">3</option>
      <select>    
      <select name="patient" class="reason_select">
         <option value="">Select</option>
         <option value="2">2</option>
         <option value="3">3</option>
         <option value="4">4</option>
      </select>
      <select name="exposure" class="reason_select">
         <option value="">Select</option>
         <option value="2">2</option>
         <option value="3">3</option>
         <option value="4">4</option>
      </select>
      <select name="equipment" class="reason_select">
         <option value="">Select</option>
         <option value="2">2</option>
         <option value="3">3</option>
         <option value="4">4</option>
      </select>
      <select name="positioning" class="reason_select">
         <option value="">Select</option>
         <option value="2">2</option>
         <option value="3">3</option>
         <option value="4">4</option>
      </select>
    <input type="button" name="audit_submit" class="audit_submit audit_submit_btn ie7_submit" value="" />
    <input type="hidden" class="form_id" value="<? echo $i; ?>" >
 </form>

我会将脚本更改为

<script>
  $(document).ready(function () {
      $('#audit_content').on("click", ".audit_submit", function () {
          var form = $(this).prev('form');
          var grade = $('select[name="grade"]', form).val();
          if (grade != '1') {
              $('select.reason_select', form ).each(function () {
                  alert($(this).text());
              });
          }
      });
  });
</script>

$(文档).ready(函数(){
$(“#审核内容”)。在(“单击”、“.audit_submit”函数()上{
var form=$(this.prev('form');
var grade=$('select[name=“grade”]”,form.val();
如果(等级!=“1”){
$('select.reason_select',表单)。每个(函数(){
警报($(this.text());
});
}
});
});

在您发布的脚本中,缺少了几个
}
,因此它应该会产生语法错误

你提到

当前表单(包含单击的按钮的表单)


但是表单中没有包含您的按钮,这就是我将代码更改为
form=$(this)的原因。显示的prev('form')
按钮位于表单外部,而不是前面提到的内部

要隔离任何重复类型小部件,请查找该小部件的父级,然后仅在其中搜索: 通过执行以下操作,在表单中移动按钮将非常容易:

$('#audit_content').on("click", ".audit_submit", function () {
    var form=$(this).closest('form')
    var selects=form.find('select');
// do somthing with selects

})

$('.grade'+form_id)-我在HTML中看不到此选择器的目标。不要显示PHP,显示HTML。我显示PHP只是为了让您知道$I的值在哪里。JavaScript抛出一个语法错误:意外标记:}JavaScript在我的系统上运行良好,也许您在我发现添加额外内容之前尝试过,该按钮位于表单中,该按钮是在我发布问题后添加的,因为其他人希望看到按钮的代码无需担心…按钮不重要…主要概念是隔离模块的父级并在其中搜索。当处理页面中的任何重复类型小部件时,这是一种常见的模式,无论它们是窗体、行、自定义模块还是其他类型的小部件,但是我如何检查任何选择是否有值?按钮在窗体中,我被要求在发布后为按钮添加代码,但忘记将其放在窗体标记中
$('#audit_content').on("click", ".audit_submit", function () {
    var form=$(this).closest('form')
    var selects=form.find('select');
// do somthing with selects

})