将jQuery Validator设置为基于ID

时间:2012-10-26 19:33:21

标签: jquery html validation

我有一个包含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手动添加规则,但它仍然在做同样的事情;只有第一个下拉列表才会生效。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

id

附近缺少引号
echo('<select id="'.$id.'" name="activity[]">

答案 1 :(得分: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++;
}

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