2013-05-13 145 views
2

我的表格布局类似于如下:至少在选择选项表单验证选择

<form action='' method="post" id='myform'> 
    <select name='select1'> 
     <option value=''>select option</select> 
     <option value='a'> a </option> 
     <option value='b'> b </option> 
     <option value='c'> c </option> 
    </select> 
    <select name='select2'> 
    <option value=''>select option</select> 
    <option value='e'> e </option> 
    <option value='f'> f </option> 
    <option value='g'> g </option> 
</select> 
    <select name='select3'> 
     <option value=''>select option</select> 
     <option value='h'> h </option> 
     <option value='i'> i </option> 
     <option value='j'> j </option> 
    </select> 
</form> 

<script> $('#myform').validate(); </script> 

注:我已经包括jquery.jsjquery.validate.js文件。

在这里,3选择选项的形式。我只需要验证至少一个选择选项。

回答

0
function selectValidate() { 
    var check = false; 
    $.each($('select'), function(index, data) { 
     if (data.val() !== ''){ 
       check = true; 
     } 
    }); 
    return check; 
} 
0

创建自己的验证方法:

$.validator.addMethod("selectNone", function(value, element) {if (element.value == " ") {return false;} else {return true};}), 

,然后在添加规则:

yourSelectID1: {required:true, selectNone:true}, 
yourSelectID2: {required:true, selectNone:true}, 
yourSelectID3: {required:true, selectNone:true}, 
0

有你的HTML代码错误。您应该将每个<option value=''>select option</select>更改为此<option value=''>select option</option>。所以,你的HTML将是这样的:(我添加提交按钮来显示功能)

jsFiddle Live Demo

HTML

​​

主要功能是validateSelects()
JS

function validateSelects() 
{ 
    var m = false; 
    $.each($('select'),function() 
    { 
     if($(this).val() != ''){ m=true; } 
    }); 
    return(m); 
} 
// For the functionality. 
$('#myform').on('submit',function() 
{ 
    return validateSelects(); 
});