我使用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'的undefined'。我只编写JS一周,所以我相对较新,所以我确定它已经失效了我如何宣布/引用某些内容。我已经检查过w3schools和其他来源都没有用。所以我希望有人能够提供帮助。任何建议都将不胜感激
答案 0 :(得分:0)
我们唯一可以从您提供的代码中辨别出来的错误是“有效性”属性尚未定义。
注意difference between null and undefinied in JavaScript。
非常重要实际上它未定义的事实表明它从未被设定过。我的猜测是,你有一些问题,即设置有效性属性的代码没有被执行,或者它的行为与你期望的不同。
如果您添加更多信息,例如其他代码(JavaScript和XHTML),则可能会有人更具体地回答。
Truthy and Falsy值也可能有助于了解,因为这些事情很明显发生是非常常见的