对于我的项目,我需要使用锚点(< a> -tag)来提交表单。一切正常, 除了验证 ,我需要检查用户是否以正确的格式输入了所有字段。
这是我的JS代码:
<script type="text/javascript">
function validateForm(){
var x=document.forms["register"]["email"].value
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length){
alert("Enter a valid e-mail address");
return false;
}
x=document.forms["register"]["username"].value
if (x==null || x=="")
{
alert("Enter full name");
return false;
}
x=document.forms["register"]["gender"].value
if (x==null || x=="")
{
alert("Enter your gender");
return false;
}
}
</script>
现在这就是我要提交的内容
<form name="register" action="after_registration.php" method="get" onsubmit="return validateForm();">
...
<a class="nonblock" href="javascript:document.register.submit();"><!-- content --><p id="n62">Register</p>
</form>
但它不起作用。无论我输入什么,即使字段保持空白,表单仍会提交。知道为什么会这样吗?
答案 0 :(得分:1)
尝试这样设置。
首先,不要在href中放置javascript。将其留空并从onclick处理程序返回false以停止导航。其次,从onclick处理程序调用validateForm。
<a class="nonblock" href="" onclick="validateForm(); return false;" />
从表单
中删除onsubmit调用<form name="register" action="after_registration.php" method="get" >
在validateForm()中提交表单。
//if no errors then
document.forms["register"].submit();
答案 1 :(得分:0)
使用<button type=submit>
<button type=submit class="nonblock"><!-- content --><p id="n62">Register</p></button>
这不需要任何javascript,只要你的form
的{{1}}处理程序设置正确就可以得到你想要的结果。