【发布时间】:2020-08-28 08:02:50
【问题描述】:
我有一个包含多个电子邮件字段的大 html 表单。我想要做的是确保用户不能在多个字段中输入相同的电子邮件。
我通过定义一个数组成功检测到重复,用户输入的每个电子邮件值都被推送到数组中,这就是比较发生的地方。
当检测到重复后我从输入字段中删除值但该值仍然存在于数组中,因此我的函数仍然返回存在重复值时,就会出现问题。
这是我的功能代码:
var filledEmail = [];
var allEmailFields = $("form input[type='email']");
function checkIfArrayIsUnique(myArray) {
return myArray.length === new Set(myArray).size;
}
function addToEmails() {
allEmailFields = $("form input[type='email']");
filledEmail = [];
allEmailFields.each(function(){
var currentEmail = $(this);
currentEmail.bind('change',function() {
console.log("email value changed");
filledEmail.push(currentEmail.val());
console.log(filledEmail);
if (checkIfArrayIsUnique(filledEmail) == true) {
console.log("emails unique")
}
else {
console.log("emails not unique");
}
})
});
}
任何帮助将不胜感激。
【问题讨论】:
-
如果你可以使用 ES5+ 看看这个answer
-
感谢您的帮助!
标签: javascript html jquery arrays forms