我试图确保放入字段的信息不为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 != 16
或true
,length <= 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
}