2016-08-17 56 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