2012-05-07 82 views
0

如何针对下面的选择框列表具体要求和唯一条件?Jquery验证和选择框的列表

<form name="signupForm" class="cmxform" id="signupForm" method="get" action=""> 
<select name="category[]" id="cat_1"> 
<option value="">Select One</option> 
<option value="1">aa</option> 
<option value="2">bb</option> 
<option value="3">cc</option> 
<option value="4">dd</option> 
</select> 
<select name="category[]" id="cat_2"> 
<option value="">Select One</option> 
<option value="5">ee</option> 
<option value="6">ff</option> 
<option value="7">gg</option> 
<option value="8">hh</option> 
</select> 
<select name="category[]" id="cat_3"> 
<option value="">Select One</option> 
<option value="9">ii</option> 
<option value="10">jj</option> 
<option value="11">kk</option> 
<option value="12">ll</option> 
</select> 
<input class="submit" type="submit" value="Submit"> 
</form> 

注意到有猫的数量是不固定的,也可以是3个以上,

所以如何使其需要为每个选择框,

并且每个选择框选择的值必须使用jQuery验证插件是唯一的吗?谢谢

回答

3
var $selects = $('form select[name^=category]'), 
    values = []; 

$(':submit').click(function(e) { 
    e.preventDefault(); 
    values = []; 
    $($selects).each(function() { 
     if($(this).val()) { 
      values.push($(this).val());   
     } 
    }); 
    if(!values.length) { 
     alert('Please select all categories'); 
     return false; 
    } 
    if(values.length < $selects.length || $.unique(values).length < $selects.length) { 
    alert('Please select all categories and be unique'); 
    return false; 
    } 
}); 

DEMO

+0

@Leo Chan我没有任何验证插件。 – thecodeparadox

+0

但是,谢谢,当选择是正确的,我按确认按钮,并没有任何反应(不去我页面的帖子)? –

+0

@LeoChan我不写代码提交 – thecodeparadox

1

这里是一个伟大的jQuery验证插件,将让您的生活更轻松:http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/

这是所有你需要做的:(插件不休息)

<select id="sport" class="validate[required]" name="sport"> 
<option value="">--Select--</option> 
<option value="option1">Tennis</option> 
<option value="option2">Football</option> 
<option value="option3">Golf</option> 
</select> 

希望帮助:)

+0

@Sparky“和每个选择框选择的值必须是唯一的使用jquery验证插件?”他希望使用jquery插件来实现它。标准的jQuery的Validate插件没有完成这个,因为它的bug。所以建议另一个插件似乎合法 – Aram

+0

@Aram,没有任何关于要求每个'input'元素具有_unique_名称的错误。如果你发现自己复制了'name',那么你的HTML标记就是bug的来源。 – Sparky

+0

@Sparky,有时候给同一个名称添加到不同的选择框有时会很方便,从而创建一个组,当它被提交时会变成一个数组数组,这样就可以排序..所以这并不总是被认为是一个buggy html – Aram