0

我有一个带有 5 个下拉列表的表单,这些下拉列表由 php 在运行时生成,我想使用 jQuery 验证器进行验证。由于我给了他们一个名称数组,验证器只会验证第一个下拉列表,但我需要确保在发布我的表单之前验证所有 5 个下拉列表。

用于制作下拉菜单的 PHP

function activityDropDown($id){
      echo('<select id='.$id.' name=activity[]>
          <option></option>
          <option>a</option>
          <option>b</option>  
          <option>c</option>
        </select>');
}
<script type="text/javascript">
            $(document).ready(function(){
        $("#friDate").Zebra_DatePicker({
            format: 'm-d-Y',
            disabled_dates: ['* * * 0-4,6'],
            first_day_of_week: 0,
            onSelect: function(){
                var date = new Date($("#friDate").val());
                $("#mon").val(addDays(date, -4));
                $("#tue").val(addDays(date, -3));
                $("#wed").val(addDays(date, -2));
                $("#thu").val(addDays(date, -1));
                $("#fri").val(addDays(date, 0));        
            }
        });
        $("#form").validate();
        $("#monActivity").rules("add", {
            required: true
        });
        $("#tueActivity").rules("add", {
            required: true
        });
    });
</script>
            <tr>
                <td>Activity:</td>
                <td><?php activityDropDown('monActivity') ?></td>
                <td><?php activityDropDown('tueActivity') ?></td>
                <td><?php activityDropDown('wedActivity') ?></td>
                <td><?php activityDropDown('thuActivity') ?></td>
                <td><?php activityDropDown('friActivity') ?></td>
            </tr>

如您所见,我尝试根据元素 ID 手动添加规则,但它仍然在做同样的事情;只有第一个下拉菜单会验证。

任何帮助将不胜感激!

4

2 回答 2

1

你缺少引号id

echo('<select id="'.$id.'" name="activity[]">
于 2012-10-26T19:40:17.750 回答
1

尝试这个:

function activityDropDown($id){
      static $activitynum = 0;
      echo("<select id='$id' name=activity[$activitynum]>
          <option></option>
          <option>a</option>
          <option>b</option>  
          <option>c</option>
        </select>");
      $activitynum++;
}

这通过明确指定数组索引来解决验证插件中的限制,因此名称是不同的。

于 2012-10-26T20:33:22.107 回答