首页 > 解决方案 > 在 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;
                            }
                        }
                    }
                }
            } 

标签: javascripthtmlforms

解决方案


输入的空值是一个空字符串,而不是 null。所以应该是:

&& test.elements[i].value != ''

推荐阅读