javascript - 在 JavaScript 中检查表单是否存在重复值,是否存在隐藏空值问题?
问题描述
我有一个功能来测试我的表单中的重复值。我的表单包含逻辑,如果未选中复选框,则某些输入字段会以 style="display:none" 对用户隐藏。
我遇到的问题是我认为我测试重复值的功能正在考虑隐藏字段,并且由于隐藏字段都是空的,它认为它们是重复值。
我尝试使用 if 语句来排除空值但没有任何运气。有什么建议吗?谢谢。
这是我的功能:
function valid(test) {
for (i = 0; i < test.elements.length; i++) {
if (test.elements[i].type == "number" && test.elements[i].value != null) {
var text1 = test.elements[i].value;
for (j = i + 1; j < test.elements.length; j++) {
if (test.elements[j].type == "number" && test.elements[j].value != null) {
var text2 = test.elements[j].value;
if (text1 == text2) {
alert("Please remove any duplicate values.")
return false;
}
}
}
}
}
解决方案
输入的空值是一个空字符串,而不是 null。所以应该是:
&& test.elements[i].value != ''
推荐阅读
- c# - 不确定我在这里缺少什么?C#(30 天代码挑战;条件语句简介)
- design-patterns - TDD 和 DDD 是架构模式还是设计模式?
- memory - 确定给定地址是 4k 还是 8k 对齐
- javascript - 如何使“使用 bitcoinjs-lib 发送交易”工作?
- python - 根据Python中的多个条件将多个数据帧中的一列合并到另一个数据帧
- javascript - JavaScript 中 curl 请求的等价物是什么?
- sql - 具有多列的 Sql Between 子句
- assembly - 在 MIPS 中通过移位和加法进行乘法,无需乘法
- java - 任何人都可以解释构造函数、继承和运行时多态性是如何工作的吗?还要解释以下输出背后的逻辑
- c++ - 如果已经创建了一个 mongocxx::instance 对象,则无法创建该对象