2012-11-16 54 views
0

我已經使用此代碼在窗體上設置驗證,以便在沒有檢查所有按鈕時發出警報! ..但是當我嘗試它,即使所有的按鈕檢查,它會給我錯誤警報..請幫助嗎?即使所有按鈕都選中,javascript驗證仍會提示錯誤提示

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

<html> 
<head> 

    <script type="text/javascript"> 
function validateForm(formData){ 
    if(!this.v1.checked && !this.v2.checked && !this.v3.checked){ 
     alert('answer all questions please'); 
     return false; 
    } 
     return true; 
    } 
    </script> 

    <title></title> 
</head> 

<body> 
    <form name="form1" action="mark.php" onsubmit="return validateForm()" method="post"> 
     <input type="radio" value="1" id="v1" name="v1"> <input type="radio" value="1" id="v2" name="v2"> <input type="radio" value="1" id="v3" name="v3"> <input type="submit" value="Send"> 
    </form> 
</body> 
</html> 

回答

1

看看什麼是this指的,使用console.log(this)

如果您使用getElementById()的單選按鈕,可能會更好,請在此處查看示例。

How can I check whether a radio button is selected with JavaScript?

而且改變你的if語句的邏輯,使用此:

if (!document.getElementById('v1').checked || !document.getElementById('v2').checked || !document.getElementById('v3').checked) 

我修改你的腳本在jsfiddle.net,使工作之一: http://jsfiddle.net/Xh5HW/1/

+0

它也不能工作:( – user1806136

+0

@ user1806136,我認爲選擇正確的元素是一個問題。看來你並沒有真正檢查if語句中的單選按鈕。請仔細閱讀上面的鏈接。 – Memochipan

+0

@ user1806136,if語句的邏輯也存在問題。我添加了可用於我的答案的代碼。 – Memochipan

相關問題