提问人:CH1ND1T 提问时间:8/17/2016 更新时间:8/22/2016 访问量:888
JS HTML DOM 类型不匹配错误
JS HTML DOM typeMismatch error
问:
我正在使用 XHTML、JSF 和 JavaScript 创建一个表单,通过在 h:commandButton 中使用 onclick() 来验证已提交到各自字段中的信息。
我设法创建了一个 JS 文件,该文件检查空字段并在 true 时提醒用户,这工作正常。接下来,我想尝试使用 typeMismatch 属性(在我称为 Validity 的函数中)确保输入与标记中定义的类型匹配。这是我到目前为止的代码:
function Validity() {
var checkName=document.getElementById("formdiv:cardName");
var checkCard=document.getElementById("formdiv:cardnumber");
var checkExp=document.getElementById("formdiv:expDate");
var error="";
var inputChecks=[checkName, checkCard, checkExp];
for (i=0; i < inputChecks.length; i++){
if(inputChecks[i].value.validity.typeMismatch){
error= "Your fields dont match the required input type. E.g Card Number must be a number"
}
}
document.getElementById("errorMessage").innerHTML=error;
}
我的问题出在第 48 行,我得到一个“未捕获的 TypeError:无法读取未定义的属性'typeMismatch'”。我只编写了一个星期的 JS,所以对它比较陌生,所以我确信这取决于我如何声明/引用某些东西。我已经检查了 w3schools 和其他来源,但都无济于事。所以我希望这里有人能够提供帮助。任何建议将不胜感激
答:
0赞
Brett
8/22/2016
#1
我们唯一能从您给出的代码中辨别出的错误是尚未定义“有效性”属性。
重要的是要注意 JavaScript 中 null 和 undefined 之间的区别。
实际上,它未定义的事实表明它从未被设置过。我的猜测是你遇到了一些问题,要么设置有效性属性的代码没有被执行,要么它的行为与你预期的不同。
如果您添加更多信息,例如代码的其余部分(JavaScript 和 XHTML),则有人可能会更具体地回答。
Truthy 和 Falsy 价值观也可能很有用,因为这些事情意外发生是很常见的
评论
id="formdiv:cardName"
value
value
validity
i