.each() 在 .clone() 之后用于验证功能
.each() after a .clone() for validation function
我正在使用 jquery 验证,但没有检查错误类型的选项。
因此,我正在尝试构建自己的验证函数,但在克隆一行后,我很难让每个函数正常工作。
它总是returns与第一个select离子盒的相同数据。
我已经制作了一个 jsfidlle 以获取有关该问题的更多详细信息:https://jsfiddle.net/notify/b22dctdo/
我想要实现的是,如果 select 框上有重复值,我会生成 div 并显示错误消息。
也许我看错了方向,但希望有人能指出我正确的方向。
我想使用我发现的函数 inputsHaveDuplicateValues 并制作了一个测试函数 returns 数据索引号以便更好地查看。
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;
};
非常感谢您对此的调查。
$(this).data("original-index")
returns 一个数字,而不是一个 jQuery 对象。我想你想要 filter 一组下拉菜单。
此外,您通过返回 false 而不是 true 来突破 .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());
});
我正在使用 jquery 验证,但没有检查错误类型的选项。
因此,我正在尝试构建自己的验证函数,但在克隆一行后,我很难让每个函数正常工作。
它总是returns与第一个select离子盒的相同数据。
我已经制作了一个 jsfidlle 以获取有关该问题的更多详细信息:https://jsfiddle.net/notify/b22dctdo/
我想要实现的是,如果 select 框上有重复值,我会生成 div 并显示错误消息。
也许我看错了方向,但希望有人能指出我正确的方向。 我想使用我发现的函数 inputsHaveDuplicateValues 并制作了一个测试函数 returns 数据索引号以便更好地查看。
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;
};
非常感谢您对此的调查。
$(this).data("original-index")
returns 一个数字,而不是一个 jQuery 对象。我想你想要 filter 一组下拉菜单。
此外,您通过返回 false 而不是 true 来突破 .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());
});