这个项目缺少什么?即使字段为空,表单也会被接受
What is missing in the program? The form gets accepted, even if the fields are left empty
<form name="form" method="post" action="thanks.html" onsubmit="final()">
<div id="errorBox"> </div>
<div class="marginn">
<input type="name" name="name" value="" placeholder="name" size="40" /></br>
<input type="email" name="email" placeholder="email" size="40" value="" /></br>
<div><b>Birthday</b>
<select name="birthday_month" >
<option value="" selected >Month</option>
<option value="1">Jan</option>
<option value="2">Feb</option>
<option value="3">Mar</option>
<option value="12">Dec</option>
</select>
<select name="birthday_day" >
<option value="" selected>Day</option>
<option value="1">1</option>
</select>
<select name="birthday_year">
<option value="" selected>Year</option>
<option value="2009">2009</option>
</select>
</div>
<input type="submit" name="submit" value="submit"/>
</form>
''the javascript code for validation is
使用下面给出的javascript代码验证上面的html表单。即使字段填写错误或为空,也会提交表单。请告诉我错过了什么。提前感谢。:) function final(){
var emailRegex = /^[A-Za-z0-9._]*'@[A-Za-z]*'.[A-Za-z]{2,5}$/;
var name = document.form.name.value;
var femail = document.form.email.value;
var fmonth = document.form.birthday_month.value;
var fday = document.form.birthday_day.value;
var fyear = document.form.birthday_year.value;
if( name == null || name== "")
{
document.form.name.focus() ;
//document.getElementById("errorBox").innerHTML = "enter the first name";
alert("Name Empty");
return false;
}
if (femail == null || femail== "" )
{
document.form.email.focus();
document.getElementById("errorBox").innerHTML = "enter the email";
alert("please enter Email");
return false;
}
else if(!emailRegex.test(femail)){
document.form.email.focus();
document.getElementById("errorBox").innerHTML = "enter the valid email";
return false;
}
if (fmonth == null|| fmonth=="") {
document.form.birthday_month.focus();
document.getElementById("errorBox").innerHTML = "select the birthday month";
return false;
}
if (fday == ""|| fday== null) {
document.form.birthday_day.focus();
document.getElementById("errorBox").innerHTML = "select the birthday day";
return false;
}
if (fyear == ""||fyear==null) {
document.form.birthday_year.focus();
document.getElementById("errorBox").innerHTML = "select the birthday year";
return false;
}
if(document.form.radiobutton[0].checked == false && document.form.radiobutton[1].checked == false){
document.getElementById("errorBox").innerHTML = "select your gender";
return false;
}
if(name != '' && femail != ''){
alert("done");
document.getElementById("errorBox").innerHTML = "form submitted successfully";
return true;
}
}
onsubmit="final()"
必须是
onsubmit="return final()"
// ^^^^^^
可以将onXyz
属性样式处理程序的内容视为函数体(一旦浏览器为您完成设置,它最终就是函数体)。就像
function submitHandler() {
final();
}
…没有从submitHandler
返回任何东西,因此false
永远不会使它到浏览器的事件代码,onsubmit="final()"
也不会从处理程序返回任何东西。
相关文章:
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段
- 添加和删除隐藏字段数组中的值,而不提交表单
- 单击鼠标,用MySQL数据填充html表单输入字段
- 带有条件字段的PHP表单
- 验证PDF表单中的字段
- HTML提交表单,同时包含空字段检查和按钮隐藏
- 在表单中的输入字段上提交事件
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- 表单输入字段随着溢出的文本而增长
- 如何将onChange方法添加到ExtJS 4表单中的所有字段(textField)中
- 尝试使用名称访问表中字段的日期选取器时出现问题
- Javascript 表单 - 字段不是必需的
- 单击按钮时更改数据库表的字段值
- 数据表将字段值关联到按钮,而 ajax 填充表
- 返回数据表输入字段
- 更改附加表行字段jQuery的名称
- Angularjs表单/字段验证使用JavaScript函数,无需指令
- 仅在Firefox中,表脱离字段集边界
- 如何在表单提交后使用JQuery从附加到HTML表的字段中获取$_POST数组中的值
- 什么's提交表单后,从post数组中动态附加的表行字段中获取值的问题