一种形式的两个动作

时间:2017-06-29 10:29:12

标签: javascript php html

我有一个表单,我需要使用它中的操作。 一个用于获取在字段中输入的信息并将用户重定向到另一个页面,另一个用于检查电子邮件验证。 电子邮件验证用于第一个字段,另一个字段是正常的 这是我的代码:



<form name="myform" class="login" action="getinfo.php" method="POST">
<input name="f1" type="text" placeholder="email" autofocus/>
<input name="f2" type="password" placeholder="example2"/>
&#13;
&#13;
&#13; 这是用于检查电子邮件的第一个字段的js代码:

function validateForm() {
var x = document.forms["myForm"]["email"].value;
var atpos = x.indexOf("@");
var dotpos = x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length) {
    alert("Not a valid e-mail address");
    return false;
}

我不知道如何在一个表单中使用两个动作 在此先感谢,希望我简明扼要。

1 个答案:

答案 0 :(得分:2)

为了达到你想要的效果,同时尽可能地保持你所拥有的,你可以做到:

&#13;
&#13;
function validateForm() {
  var x = document.forms["myform"]["f1"].value; //changed to "myform" and "f1"
  var atpos = x.indexOf("@");
  var dotpos = x.lastIndexOf(".");
  if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length) {
      alert("Not a valid e-mail address");
      return false;
  }
}
&#13;
<!--onsubmit handler added to <form> -->
<form name="myform" class="login" action="getinfo.php" method="POST" onsubmit="return validateForm()"> 
  <input name="f1" type="text" placeholder="email" autofocus/>
  <input name="f2" type="password" placeholder="example2"/>
  <input type="submit"> <!--submit button was missing -->
</form>
&#13;
&#13;
&#13;

请注意,重要的部分是提交表单时运行的提交处理程序,如果您希望提交表单,则返回true,否则返回false

在服务器端进行验证也很重要,否则任何用户都可以禁用javascript并绕过验证。 作为旁注,将电子邮件输入的类型更改为电子邮件已经迫使浏览器进行验证,这更容易。