如何验证来自<a> tag?</a>的表单

时间:2011-11-06 03:18:21

标签: javascript html forms submit anchor

对于我的项目,我需要使用锚点(&lt; a&gt; -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>

但它不起作用。无论我输入什么,即使字段保持空白,表单仍会提交。知道为什么会这样吗?

2 个答案:

答案 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}}处理程序设置正确就可以得到你想要的结果。