2011-08-09 182 views
0

請告訴我如何驗證表單中的多個下拉列表,如果在不同的下拉列表中選擇了相同的值,則應該觸發驗證。jquery +驗證多個下拉列表

在這裏,如果我從下拉列表中選擇相同的選項,它應該觸發驗證。 (我使用的表單驗證的jQuery驗證引擎)

<select name="user[role_id]"> 
    <option value="">Please select</option> 
    <option value="1" selected="selected">Administrator</option> 
    <option value="2">User</option> 
    <option value="3">Editor</option> 
</select> 

<select name="user[role_id]"> 
    <option value="">Please select</option> 
    <option value="1" selected="selected">Administrator</option> 
    <option value="2">User</option> 
    <option value="3">Editor</option> 
</select> 

感謝

回答

3

最簡單的方法是映射的選擇和尋找受騙者。有更好的算法來尋找僞裝(即檢測到重複時立即退出),但我選擇使用較短的代碼,因爲成本非常低:http://jsfiddle.net/rkw79/vqENk/

function HasDupe(){ 
    a = $('select').map(function(i,o) { 
     return $(o).val(); 
    }); 
    return (a.length != $.unique(a).length); 
} 
0
<select name="user[role_id]"> 
    <option value="0">Please select</option> 
    <option value="1" selected="selected">Administrator</option> 
    <option value="2">User</option> 
    <option value="3">Editor</option> 
</select> 

<select name="user[role_id]"> 
    <option value="0">Please select</option> 
    <option value="1" selected="selected">Administrator</option> 
    <option value="2">User</option> 
    <option value="3">Editor</option> 
</select> 
<script type="text/javascript"> 
    $(document).ready(function(e){ 
      if ($('select[name="user[role_id1]"]').val() == $('select[name="user[role_id2]"]').val()) { 
     alert('select different value');//validation msg 
    } 
}); 
</script>