我正在使用jquery验证,但没有选项来检查错误类型。
因为我正在尝试构建自己的验证函数,但是在克隆一行之后,我正在努力让每个函数都能正常工作。
它始终返回第一个选择框的相同数据。
我已经制作了一个jsfidlle来详细了解这个问题:https://jsfiddle.net/notify/b22dctdo/
我想要实现的是,如果选择框上有重复的值,我会生成带有错误消息的div。
也许我正朝着错误的方向前进,但希望有人能指出我正确的方向。 我想使用函数inputsHaveDuplicateValues我已经找到并创建了一个测试函数,它返回数据索引号以便更好地查看。
function inputsHaveDuplicateValues() {
var hasDuplicates = false;
$('li.selected').each(function() {
var $inputsWithSameValue = $(this).data("original-index");
hasDuplicates = $inputsWithSameValue.length > 1;
//This will break out of the each loop if duplicates have been found.
return hasDuplicates;
});
return hasDuplicates;
};
非常感谢提前调查此事。
答案 0 :(得分:1)
$(this).data("original-index")
返回一个数字,而不是jQuery对象。我想你想要filter一组下拉列表。
此外,你通过返回false而不是真实来突破.each()
。
function test() {
$("ul.inner").each(function(index, element) {
alert("Test Function -> " + $("li.selected",this).data("original-index"));
});
};
function inputsHaveDuplicateValues() {
var hasDuplicates = false;
$('li.selected').each(function() {
var originalIndex = $(this).data("original-index"),
$inputsWithSameValue = $("ul.inner").filter(function() {
return $('li.selected',this).data('original-index') == originalIndex;
});
hasDuplicates = $inputsWithSameValue.length > 1;
//This will break out of the each loop if duplicates have been found.
return !hasDuplicates;
});
return hasDuplicates;
};
// on button check
$("#check").click(function(event) {
test()
alert("Duplicate function -> " + inputsHaveDuplicateValues());
});