【问题标题】:JS HTML DOM typeMismatch errorJS HTML DOM 类型不匹配错误
【发布时间】:2016-12-24 05:54:14
【问题描述】:

我正在使用 XHTML、JSF 和 JavaScript 创建一个表单,通过在 h:commandButton 中使用 onclick() 来验证已提交到各自字段中的信息。

我已经设法创建了一个 JS 文件来检查空字段并在为真时提醒用户,这工作正常。接下来我想尝试确保输入与使用 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 行,在那里我得到一个“未捕获的类型错误:无法读取未定义的属性‘typeMismatch’。我只编写了一周的 JS,所以对它比较陌生,所以我确定它已经关闭了关于我如何声明/引用某些东西。我已经检查了 w3schools 和其他来源都无济于事。所以我希望这里的人能够提供帮助。任何建议将不胜感激

【问题讨论】:

  • 那么你有id="formdiv:cardName"等元素吗?这些元素有values 吗?这些values 有validitys 吗?脚本崩溃时i的值是多少?
  • 是的,这些元素与 id="formdiv" 的表单中的 ah:inputText 字段相关,因此当调用 onclick:"Validation()" 时,JS 将获取该字段中的值观点。示例
    并且 i 的值为 null因为脚本在评估 if 语句时崩溃

标签: javascript jsf dom xhtml


【解决方案1】:

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

请务必注意difference between null and undefinied in JavaScript

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

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

Truthy and Falsy 值也可能有助于了解,因为这类事情意外发生是很常见的

【讨论】:

    猜你喜欢
    • 2021-04-07
    • 2013-01-16
    • 2014-02-05
    • 2018-06-08
    • 2012-02-16
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多