Javascript 超过1个表单,其中onsubmit使用不同的函数

Javascript 超过1个表单,其中onsubmit使用不同的函数,javascript,html,validation,onsubmit,Javascript,Html,Validation,Onsubmit,我有两个表单,一个用于电子邮件,一个用于电话号码,我在a中创建了两个函数来验证电子邮件和电话号码,但当我提交时,它只使用与第一个表单关联的函数 实际上,我可以在第一个表单和第二个表单之间进行交换,并且始终只运行代码中第一个表单,而另一个表单永远不会运行 <script type="text/javascript"> function validatePhone() { var y=document.forms["MyPhone"]["PhoneN"].value; var Phol

我有两个表单,一个用于电子邮件,一个用于电话号码,我在a中创建了两个函数来验证电子邮件和电话号码,但当我提交时,它只使用与第一个表单关联的函数

实际上,我可以在第一个表单和第二个表单之间进行交换,并且始终只运行代码中第一个表单,而另一个表单永远不会运行

<script type="text/javascript">

function validatePhone()
{
var y=document.forms["MyPhone"]["PhoneN"].value;
var Pholen=y.length
if (Pholen < 10)
  {
  alert("Number must be at last 10 Chars");
  return false;
  }
}

function validateForm()
{
var x=document.forms["MyMail"]["mailN"].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;
  }
}
</script>

<form name='MyPhone' onsubmit="return validatePhone()" method="post">Phone*: <input type="number" maxlength="10" name='PhoneN' onkeyup="this.value = this.value.replace(/[^0-9]/, '')"  size="16">

<form name='MyMail' onsubmit="return validateForm()" method="post">Your Email*: <input type="character" name='mailN' size="16">

函数validatePhone()
{
var y=document.forms[“MyPhone”][“PhoneN”].value;
var Pholen=y.长度
如果(Pholen<10)
{
警报(“编号必须至少为10个字符”);
返回false;
}
}
函数validateForm()
{
var x=document.forms[“MyMail”][“mailN”].value;
var atpos=x.indexOf(“@”);
var dotpos=x.lastIndexOf(“.”);

如果(atpos也许你可以试试这样的东西

<form name='MyForm' onsubmit="validatePhone();validateForm();" method="post">
  <label for="PhoneN">Phone*:</label>
  <input type="number" maxlength="10" name='PhoneN' onkeyup="this.value = this.value.replace(/[^0-9]/, '')" size="16">
  <label for="mailN">Your Email*:</label>
  <input type="text" name='mailN' size="16">
  <button name="submit" type="submit">Submit</button>
</form>

电话*:
您的电子邮件*:
提交

为什么您需要两个表单?为什么不让一个表单包含两个字段?我知道问题已经得到了回答,但我仍然很好奇问题出在哪里。我无法将您的问题复制到原始来源。嗯,您没有将表单2嵌套在表单1中,是吗?我不知道问题出在哪里,但您确实知道了。将所有输入封装在一个表单ele中当然,您可以在提交时执行多个函数;)我个人使用jQuery+AJAX来实现这一目的。是的,您可以在一个表单元素中输入任意多个输入,并且不需要在页面上保存表单操作脚本,您可以创建外部脚本,然后将其分配给表单操作属性。