验证具有相同名称jquery的多个字段?

时间:2013-04-26 14:45:01

标签: php jquery validation

我的页面中有多个选择输入,这些输入是使用相同名称动态创建的。

我的代码:

<select name="area[]" id="area[]" class="area">
    <option value="">Select Area</option>
    <?  
     $cities = $this->city_model->get_all($posters->product_id);
         foreach($cities as $city) { ?>
           <option value="<?=$city->city_id?>"><?=$city->city_name?></option>
        <? } ?>
 </select>

我希望用户从每个选择输入中选择一个值,我正在使用这样的jQuery函数:

 $('.area').each(function(){ 
if($(this).val() == "") {
  alert("please select Area");
}  return false;
});

$('.quantity').each(function(){ 
if($(this).val() == "" || $(this).val() == 0) {
  alert("please select Quantity");
  return false;
}
});
$('#form').submit();

我做了同样的事情,它也有效,但它也提交了表格,即使我限制它

 <input type="submit" name="something" id="something" value="something" onclick="checkType();return false;">    

3 个答案:

答案 0 :(得分:3)

你缺少if语句的括号。试试这个:

$('.area').each(function(){ 
   if($(this).val() === "") {
      alert("please select Area");
      return false;
   }
});

编辑:我重新添加了return false部分,因为OP很可能只想显示1个警报而不管有多少项无效。

Here is a working example

答案 1 :(得分:1)

$('form').submit(function(){
    var unSelected = $('select').filter(function(){
        return this.value === "";
    }).length > 0;

    if (unSelected)
        alert('Error!');
});

答案 2 :(得分:0)

试试这个:

<script>$('.area').each(function() {
        if ($(this).val() == '') {
            alert("please select Area");
            return false;
        }
    });   
</script>
相关问题