2013-01-12 36 views
0

好的,我有幾個查詢窗體。我開始爲它寫我的驗證代碼,但我的錯誤不會顯示。它發現錯誤,因爲它將div的狀態從隱藏狀態改變爲可見狀態,但不會顯示錯誤類型。窗體驗證,div標記中的錯誤不會顯示

這裏是我的valform.js

reason = ""; 
function validateForm(form) 
{ 
    reason += validateAge(form.age); 
    if (reason != "") 
    { 
     document.getElementById('erbox').style.visibility = 'visible'; 
     return false; 
    } 
    return true; 
} 

function validateAge(fld) 
{ 
    function isNumber (o) 
    { 
     return ! isNaN (o-0); 
    } 

    var error =""; 
    var x=fld.value; 
    if (x==null || x=="") 
    { 
     error="Age must be filled"; 
    } 
    else if (isNumber(x)==false) 
    { 
     error="Your age is not numeric value!"; 
    } 
    else if (x<18) 
    { 
     error = "You need to be 18 or older!"; 
    } 
    return error; 
} 

這裏是我的HTML表單:

<div id="upform"> 
<form name="lastcheck" action="lastcheck.php" method="post" onsubmit="return 
    validateForm(this);"> 
    Location: <input type="text" name="locationcity"> 
    Country: <input type="text" name="country"> 
    Gender: <input type="radio" name="group1" value="w"> Woman<br> 
    <input type="radio" name="group1" value="m"> Man<br> 
    Age: <input type="number" name="age" size="4" maxlength="2"> 
    <input type="submit" value="Submit"> 
    <div style="visibility:hidden" id="erbox">Next error(s) occured: 
    <script type="text/javascript"> document.write.lastcheck('reason'); 
    </script> 
    </div> 
    </form> 
</div> 

我包括像這樣的頭js文件:

<script src="js/valform.js"></script> 

所以現在當它在AGE字段發生錯誤時,我的隱藏錯誤表單變爲可見,但沒有關於錯誤的信息。

我還有一個問題,仍然在學習的javascript:

所以想添加單選按鈕,驗證和它打破了我的整個驗證:

function vGender(fld) { 

var x = fld.value; 


var i = 0; 
while (i < x.length) { 
    if (x[i].checked) formValid = true; 
    i++;   
} 

if (!formValid) error = "blabla"; 
return error; 
}​ 

,我添加了另一個原因,在頂部是這樣的:

reason += vGender(form.radios); 
+0

在哪裏,增加了錯誤信息的錯誤'DIV'的代碼? –

+0

需要一些額外的幫助,提前謝謝 – user1825130

回答

1
document.write.lastcheck('reason'); 

這將填充您的div 在加載 - 你的驗證功能只顯示它,但不填充一個新的消息,所以它是空的。

試試這個:

if (reason != "") { 
    var box = document.getElementById('erbox'); 
    box.style.visibility = 'visible'; 
    box.innerHTML = 'Next error(s) occurred: ' + reason; // here you go 
    return false; 
} 
+0

我想他想保留這個文本,雖然:_下一個錯誤(S)發生:_ –

+0

所以基本上我忘了把東西來顯示這個div。哦,我傻了 謝謝。 – user1825130

+0

是的,我加了這個來保存它。謝謝:) – user1825130