javascript - 提交时出现问题 - 更新

标签 javascript php jquery ajax forms

感谢您迄今为止的投入。 逻辑是有的,但是当传递 true 来提交时它仍然不想提交...... 我添加了一个警报,看看当值为 true 时它是否被调用,但由于某些奇怪的原因,“返回 false”没有传递要提交的值......

我不明白问题是什么。开始被吓到了哈哈

    <form name="newuser" id="form" method="post" action="do_new_user.php" onSubmit="return validateForm(false)"> 


    function validateForm(submitNow){


if (submitNow == true){
         alert ('call ok');
     return true;
     }

else
{
    var x=document.forms["newuser"]["name"].value;
    var x2=document.forms["newuser"]["surname"].value;
    var x3=document.forms["newuser"]["email"].value;
    var x4=document.forms["newuser"]["password1"].value;
    var x5=document.forms["newuser"]["password2"].value;

    if (x==null || x=="") 
      {

      $("#form_status").fadeIn("slow");
      $("#form_status").text("Please enter your name.");
      return false;
      }

    if (x2==null || x2=="") 
      {
      $("#form_status p").fadeIn("slow");
      $("#form_status").text("Please enter your surname.");
      return false;
      }

    if (x3==null || x3=="") 
      {
      $("#form_status").fadeIn("slow");
      $("#form_status").text("Please enter your email address.");
      return false;
      } 

    var atpos=x3.indexOf("@");
    var dotpos=x3.lastIndexOf(".");
    if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x3.length)
      {
      $("#form_status").fadeIn("slow");
      $("#form_status").text("Email address in invalid.");
      return false;
      }

    if (x4==null || x4=="") 
      {
      $("#form_status").fadeIn("slow");
      $("#form_status").text("Please enter your password.");
      return false;
      }   

    if (x5==null || x5=="") 
      {
      $("#form_status").fadeIn("slow");
      $("#form_status").text("Please re-enter your password.");
      return false;
      } 

    if (x4!==x5)
      {
      $("#form_status").fadeIn("slow");
      $("#form_status").text("Password Mismatch.");
      return false; 
      }

    //Check if username exists.
    $.post("http://ryangosden.com/breadcrumbs/check_user_exists.php",  
             {
                x3 : x3
             } , 

             function(data)
              { 

                var obj = jQuery.parseJSON(data);

                if (obj.email_exists == 1) 
                  {   
                    $("#form_status").fadeIn("slow");
                    $("#form_status").text("Email Address Taken.");

                }  

                if (obj.email_exists == 2)   
                  {   
                $("#form_status").fadeIn("slow");
                    $("#form_status").text("Email ok.");
                    validateForm(true);
                  }  
    });
     return false; 
}


}

最佳答案

如果我理解正确,表单应该在未收到电子邮件时提交(并且所有其他字段都可以)

这似乎是在您的代码中完成的:

$("#form_status").fadeIn("slow");
     $("#form_status").text("Email ok.");
     validateForm(true);
}  

您必须捕获参数,以便可以提交表单,这可以在函数开头完成:

function validateForm(submitNow) {

   if (submitNow) return true;

   [... rest of function...]
}

感谢 A. Wolff 和 Karl-André Gagnon 的评论,我的第一个答案太快了:)

更新:

这是一个可以扩展的工作示例

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
function validateform(submitNow) {
    if (submitNow) return true;
    else if ($('#input').val()) return validateform(true);
    alert('Please enter a value');
    return false;
}
</script>
<form id="#form" action="http://google.com" onsubmit="javascript:return validateform()">
    <input type="text" id="input"><input type="submit">
</form>

关于javascript - 提交时出现问题 - 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21729461/

相关文章:

javascript - 让 mathjax 在 rpc 之后重新加载页面

javascript - 如何使用 jQuery 在单击文本框时隐藏和显示 div

php - php 是一种可扩展的网络语言吗?

javascript - 页面加载时如何应用过滤器?

javascript - JQuery UI 自动完成 : . 数据(...)未定义 [但仅当我添加第二个自动完成框时]

javascript - 如何创建一个由 onclick 触发的简单变量交流发电机?

php - DOCUMENT_ROOT 不完整,缺少域文件夹

php - WordPress 查询

javascript - iframe 不适用于通配符包罗万象的子域和 dnsmasq

javascript - 有没有办法自动生成伪图像 map ?