JS HTML DOM typeMismatch错误

时间:2016-08-17 14:03:32

标签: javascript jsf dom xhtml

我使用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和其他来源都没有用。所以我希望有人能够提供帮助。任何建议都将不胜感激

1 个答案:

答案 0 :(得分:0)

我们唯一可以从您提供的代码中辨别出来的错误是“有效性”属性尚未定义。

注意difference between null and undefinied in JavaScript

非常重要

实际上它未定义的事实表明它从未被设定过。我的猜测是,你有一些问题,即设置有效性属性的代码没有被执行,或者它的行为与你期望的不同。

如果您添加更多信息,例如其他代码(JavaScript和XHTML),则可能会有人更具体地回答。

Truthy and Falsy值也可能有助于了解,因为这些事情很明显发生是非常常见的