gpt4 book ai didi

javascript - .clone() 之后的 .each() 用于验证函数

转载 作者:行者123 更新时间:2023-12-03 07:25:34 26 4
gpt4 key购买 nike

我正在使用 jquery 验证,但没有选项来检查错误类型。

因此,我正在尝试构建自己的验证函数,但在克隆一行后我很难让每个函数正常工作。

它总是返回第一个选择框的相同数据。

我制作了一个 jsfidlle 以获取有关该问题的更多详细信息:https://jsfiddle.net/notify/b22dctdo/

我想要实现的是,如果选择框上有重复值,我会生成一个带有错误消息的 div。

也许我看错了方向,但希望有人能指出我正确的方向。我想使用我找到的函数inputsHaveDuplicateValues,并制作了一个测试函数来返回数据索引号以获得更好的 View 。

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") 返回一个数字,而不是 jQuery 对象。我想你想要filter下拉菜单集。

另外,你突破了 .each()通过返回 false,而不是 true。

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());
});

https://jsfiddle.net/op93cbyz/

关于javascript - .clone() 之后的 .each() 用于验证函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36021539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com