JQUERY从页面上的多个选择中获取具有多个表单的值

时间:2013-10-26 22:31:52

标签: javascript php jquery

我有一个页面,其中有几个使用while循环创建的表单,每个表单有四个选择。我试图找出如何检查属于当前表单的每个选项(包含单击按钮的选项)以确认是否已选择任何选项。所有表单都包含在一个名为#audit_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>

JQuery

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

脚本显示页面上reason_select类的每个选择的值,我意识到这是因为我没有告诉它检查一个特定的表单,这就是我被困在的位置

2 个答案:

答案 0 :(得分:1)

我会将脚本更改为

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

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

你提到

  

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

但您的按钮未包含在表单中,这就是我将代码更改为form = $(this).prev('form')

的原因

答案 1 :(得分:1)

显示的

按钮位于表格之外,而不是如上所述。

要隔离任何重复类型窗口小部件,请查找该窗口小部件的父窗口,然后仅在其中搜索: 移动表单内的按钮可以很容易地执行:

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

})