JavaScript中getelementbyid的多个if或语句

JavaScript中getelementbyid的多个if或语句,javascript,Javascript,我试图确保输入到字段中的信息不为空,具有一定的长度,并且不包含字母 var Xlength = document.getElementById('X') if( document.getElementById('X').value === '' || Xlength.innerHTML.length != 16 || isNaN(Xlength) ) 然而,当我测试代码时,它总是显示为false。这个问题中有一个简单的语法问题,还是我误解了更重要的东西?当你这样写的时候: getElement

我试图确保输入到字段中的信息不为空,具有一定的长度,并且不包含字母

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

然而,当我测试代码时,它总是显示为false。这个问题中有一个简单的语法问题,还是我误解了更重要的东西?

当你这样写的时候:

getElementById('X'),它并不表示任何长度,而是表示DOM元素

因此,isNaN(Xlength)将始终为真

另外,document.getElementById('X')。该值始终未定义,因为DOM元素上没有“值”


这里,Xlength.innerHTML.length!=16可能为false,因为当您这样写时,此元素的内容可能不是16:

getElementById('X'),它并不表示任何长度,而是表示DOM元素

因此,isNaN(Xlength)将始终为真

另外,document.getElementById('X')。该值始终未定义,因为DOM元素上没有“值”


这里,Xlength.innerHTML.length!=16可能为假,因为此元素的内容可能不是16。假设
X
是一个输入字段,则
var Xlength=document。getElementById('X')
将选择此输入字段。在这种情况下,这个变量的命名不好,因为它是字段本身,而不是它包含的任何输入的长度

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

Xlength.innerHTML.length!=16
没有意义,因为没有innerHTML;您真正想要的是
Xlength.value.length
。此外,
Xlength.value.length!=如果
length=17
,则16
的计算结果为
true
,这也可能不是您真正想要的,因此我会将此相等性检查调整为类似
xllength.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
}
var Xval=document.getElementById('X').value;
//或者,选择性地
var Xval=document.getElementById('X').value.trim();
//删除额外的空白
如果(Xval.length>0&&Xval.length<16){
//不为空且少于16个字符
}

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

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

Xlength.innerHTML.length!=16
没有意义,因为没有innerHTML;您真正想要的是
Xlength.value.length
。此外,
Xlength.value.length!=如果
length=17
,则16
的计算结果为
true
,这也可能不是您真正想要的,因此我会将此相等性检查调整为类似
xllength.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
}
var Xval=document.getElementById('X').value;
//或者,选择性地
var Xval=document.getElementById('X').value.trim();
//删除额外的空白
如果(Xval.length>0&&Xval.length<16){
//不为空且少于16个字符
}

try
isNaN(Xlength.value)
请将代码包装在代码格式中编辑您的问题try
isNaN(Xlength.value)
请将代码包装在代码格式中编辑您的问题如果将90%的文本加粗,粗体将失去效果。如果将90%的文本加粗,粗体将失去效果。