2016-08-17 55 views
-1

我使用XHTML,JSF和JavaScript来创建一个表单,验证已再在H通过使用的onclick()提交到各自领域的信息:命令按钮。JS HTML DOM typeMismatch错误

我已成功地创建检查空字段,并提醒工作正常用户如果为true,JS文件。接下来我想尝试确保输入与使用typeMismatch属性在标记中定义的类型匹配,该函数在我称为“有效性”的函数中。这是我到目前为止的代码:

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行,其中我得到一个“遗漏的类型错误:无法读取的未定义的属性‘typeMismatch’”我只编码JS的一个星期,所以我相对比较新,所以我确定这是关于我如何声明/引用某些东西。我已经检查过w3schools和其他来源都没有用,所以我希望有人会在这里能够提供帮助。任何建议,将不胜感激

+0

那么,你有'ID =元素有用“formdiv:cardName”'等?这些元素是否具有“价值”?这些“价值”是否具有“有效性”?脚本崩溃时'i'的价值是什么? –

+0

是元素与id =“formdiv”表单中的h:inputText字段相关,因此当调用onclick:“Validation()”时,JS将获取该点字段中的值。例如

\t
和我的值为null作为脚本崩溃时if语句的评价 – CH1ND1T

回答

0

,我们可以从你给的代码识别的唯一的事情和错误是“有效性”属性^ h没有被定义。

重要的是要注意difference between null and undefinied in JavaScript是很重要的。

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

如果你添加更多的信息,如代码的其余部分(JavaScript和XHTML)有人或许能更具体的回答。

Truthy and Falsy值也可能是学习,因为它是相当常见的这些各种各样的事情发生unexpectely