2012-05-07 111 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