2017-04-05 93 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