2017-04-05 70 views
1

下面的javacript用於驗證檢查。但是,如果缺少輸入,則不會顯示警報 語句。 我試圖刪除if語句,只使用alert語句和 腳本正常工作。 if語句有什麼問題嗎? 下面是我的HTML代碼:JavaScript中的警報語句不顯示?

<html> 
<head> 
<title>A More Complex Form with JavaScript Validation</title> 
<script type="text/javascript"> 
// Validation form 
function validate_form() 
{ 
    valid = true; 
    // check for missing name 
    if (document.contact_form.contact_name.value == "") 
    { 
     alert("Please fill in the 'Your Name' box,"); 
     valid = false; 
    } 
    // check for missing gender 
    if (document.contact_form.gender[0].checked == false) && ( 
    document.contact_form.gender[1].checked == false) 
    { 
     alert("Please choose your Gender: Male or Female"); 
     valid = false; 
    } 
    // check for missing age 
    if (document.contact_form.age.selectedIndex == 0) 
    { 
     alert("Please select your Age."); 
     valid = false; 
    } 
    // check for missing terms 
    if (document.contact_form.terms == false) 
    { 
     alert("Please check the Terms & Conditions box."); 
     valid = false; 
    } 

    return valid; 
} 
//-->   
</script> 
</head> 

<body> 
<h1>Please Enter Your Details Below</h1> 
<form name="contact_form" onsubmit="validate_form()"> 
<p>Your Name: 
<input type="text" name="contact_name" size="20"> 
</p> 
<p> 
Your Gender: 
<input type="radio" name="gender" value="male">Male 
<input type="radio" name="gender" value="female">Female 
</p> 
<p> 
Your Age: 
<select name="age"> 
<option value="1">0-14 years</option> 
<option value="2">15-30 years</option> 
<option value="3">31-44 years</option> 
<option value="4">45-60 years</option> 
<option value="5">61-74 years</option> 
<option value="6">75-90 years</option> 
</select> 
</p> 
<p> 
Do you agree to the Terms and Conditions? 
<input type="checkbox" name="terms" value="yes">Yes 
</p> 
<input type="submit" name="submit" value="Send Details"> 
</form> 
</body> 
</html> 
+2

是否有任何開發人員工具控制檯錯誤? –

+0

修復語法錯誤後,它可以正常工作。一些建議:只在最後使用一個警報,因此只需將警報內的所有字符串連成一個字符串並在最後警告它。用戶不喜歡egtting 4彈出窗口告訴同樣的事情。此外,檢查條款不起作用,您還必須添加.check。 Atm,在synatx錯誤修復後,您可以在沒有接受條款的情況下提交。 – Shilly

回答

1
if (document.contact_form.gender[0].checked == false) && ( 
document.contact_form.gender[1].checked == false) 
{ 
    alert("Please choose your Gender: Male or Female"); 
    valid = false; 
} 

你必須改變,如果情況像

if (document.contact_form.gender[0].checked == false && 
document.contact_form.gender[1].checked == false) 
{ 
    alert("Please choose your Gender: Male or Female"); 
    valid = false; 
} 

腳本可以不火,因爲這個錯誤了。

提示:您可以從Chrome控制檯等瀏覽器的開發控制檯檢查腳本錯誤。

作爲「trincot」通過評論表示,您還可以使用!運算符來檢查boolean這樣的值。

if (!document.contact_form.gender[0].checked && !document.contact_form.gender[1].checked) 
{ 
    alert("Please choose your Gender: Male or Female"); 
    valid = false; 
} 
+1

你也可以說'== false'可以通過not('!')運算符以更專業的方式檢查:'!document.contact_form.gender [0] .checked &&!..... '(+1) – trincot