我有这段代码
jQuery.validator.addMethod( "multi_select", function( value, element , params ) {
var string = element.toString();
console.log(string);
}, 'Please select atleast one element.');
我想将元素值作为字符串。我怎样才能做到这一点 ??
答案 0 :(得分:0)
如果您只想检查多选元素中至少选择了一个项目,那么只需使用所需的规则
jQuery(function($) {
var validator = $('#myform').validate({
rules: {
multi: {
required: true
}
},
messages: {}
});
});
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.3.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/jquery.validate.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/additional-methods.js"></script>
<form id="myform" method="post" action="">
<select name="multi" multiple>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<input type="submit" value="Save" />
</form>
但是如果你想实现自己的逻辑,传递给方法的value
参数将是input / select元素的值,如果是多选元素,它将是一个数组(如果是没有选择项目)所以
jQuery.validator.addMethod("multi_select", function(value, element, params) {
console.log(value)
return value && value.length > 0
}, 'Please select atleast one element.');
jQuery(function($) {
var validator = $('#myform').validate({
rules: {
multi: {
multi_select: true
}
},
messages: {}
});
});
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.3.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/jquery.validate.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/additional-methods.js"></script>
<form id="myform" method="post" action="">
<select name="multi" multiple>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<input type="submit" value="Save" />
</form>