4Je*_*ean 0 arrays validation jquery
我想显示重复或不唯一的值的错误,但我的表单采用输入数组,我已经在jsfiddle检查了这些问题,name = "week[]"失败但name = "week"工作正常
表单HTML
<html>
<head></head>
<body>
<form name = "myForm" id = "myForm" class ="validate">
<input type="number" name="week[]" id="week1"/>
<input type="number" name="week[]" id="week2"/>
<input type="number" name="week[]" id="week3"/>
<input type="number" name="week[]" id="week4"/>
</form>
<script src="assets/js/jquery.validate.min.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我试过这个
<script type="text/javascript">
jQuery.validator.addMethod("unique", function(value, element, params) {
var prefix = params;
var selector = jQuery.validator.format("[name!='{0}'][unique='{1}']", element.name, prefix);
var matches = new Array();
$(selector).each(function(index, item) {
if (value == $(item).val()) {
matches.push(item);
}
});
return matches.length == 0;
}, "Value is not unique.");
jQuery.validator.classRuleSettings.unique = {
unique: true
};
</script>
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏
您可以创建输入值数组,map()然后检查数组中的重复项并显示/隐藏错误消息
$('#myForm input').on('change', function() {
//Create array of input values
var ar = $('#myForm input').map(function() {
if ($(this).val() != '') return $(this).val()
}).get();
//Create array of duplicates if there are any
var unique = ar.filter(function(item, pos) {
return ar.indexOf(item) != pos;
});
//show/hide error msg
(unique.length != 0) ? $('.error').text('duplicate'): $('.error').text('');
})Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form name="myForm" id="myForm">
<input type="number" name="week[]" id="week1">
<input type="number" name="week[]" id="week2">
<input type="number" name="week[]" id="week3">
<input type="number" name="week[]" id="week4">
</form>
<div class="error"></div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1637 次 |
| 最近记录: |