0

我有一个要发布到PHP服务器页面的表单。在我POST在客户端进行一些验证测试之前,如果一切正常我返回true然后开始提交,如果有问题我返回false并取消提交。

<form  onsubmit="return validateForm()" method="post" action="t5.php">

和验证功能:

function validateForm() {

    email = document.getElementById('email').value;
    name = document.getElementById('name').value;

    if ((name==="")|| (email=="") ) {
       document.getElementById('validateError').innerHTML="error text";


       return false;
    }
    else
  return true;

};

此逻辑适用于上一个 Chrome 版本,但在 Chrome 19 和 Firefox 及其返回时尝试过此操作,false但仍会立即提交。有任何想法吗?

4

3 回答 3

0

而不是在“onsubmit”上调用验证函数,您可以在单击按钮时调用类似的函数,然后如果没有错误,则通过代码提交表单

尝试类似的东西

<form name="testform" id="testform" method="post" action="t5.php">

    <input type="text" name="name" id="name"/>
    <input type="text" name="email" id="email"/>
    <input type="button" name="Submit" value="Submit" onclick="validateSubmitForm();"/>
</form>

validateSubmitForm 函数可能有这样的东西

function validateSubmitForm() {
   var email = document.getElementById('email').value;
   var name = document.getElementById('name').value;

   if ((name=="")|| (email=="") ) {
     document.getElementById('validateError').innerHTML="error text";
   }
   else {
     document.testform.submit();
   }
}

于 2013-07-14T13:43:17.933 回答
0

尝试使用preventDefault()来阻止表单提交。

HTMLFormElement.submit()提交如果一切正常。

于 2013-07-14T12:48:29.020 回答
0

试试这个:

Java 脚本

function validateForm(e) {

    email = document.getElementById('email').value;
    name = document.getElementById('name').value;

    if ((name=="")|| (email=="") ) {
       document.getElementById('validateError').innerHTML="error text";
       e.preventDefault();
    }


};

HTML

<form  onsubmit="validateForm(event)" method="post" action="t5.php">
于 2013-07-14T12:53:07.127 回答