我试图确保放入字段的信息不为null,一定长度且不包含字母。

var Xlength = document.getElementById('X')
if( document.getElementById('X').value === '' || Xlength.innerHTML.length != 16 || isNaN(Xlength) )


但是,当我测试代码时,它总是出现为false。这个问题是否有一个简单的语法问题,还是我误解了一些更关键的东西?

最佳答案

假设X是输入字段,则var Xlength = document.getElementById('X')将选择此输入字段。在这种情况下,此变量的名称不正确,因为它是字段本身,而不是它包含的任何输入的长度。

如果在该字段中输入了某些内容,则document.getElementById('X').value === ''将为false,因为它不会为空。

Xlength.innerHTML.length != 16没有意义,因为没有innerHTML。您真正想要的是Xlength.value.length。此外,如果Xlength.value.length != 16truelength <= 15的计算结果为length >= 17,这可能也不是您真正想要的,因此我将把此相等性检查调整为Xlength.value.length < 16

isNaN(Xlength)没什么意义。

我将其重写为:

var Xval = document.getElementById('X').value;
    // or, optionally
var Xval = document.getElementById('X').value.trim();
    // removes extra white space
if(Xval.length > 0 && Xval.length < 16){
    // is not empty and less than 16 characters
}

10-04 11:01