Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 提交中的问题-更新_Javascript_Php_Jquery_Ajax_Forms - Fatal编程技术网

Javascript 提交中的问题-更新

Javascript 提交中的问题-更新,javascript,php,jquery,ajax,forms,Javascript,Php,Jquery,Ajax,Forms,谢谢你到目前为止的投入。 逻辑是存在的,但它仍然不想提交时,通过真提交。。。 我添加了一个警报,以查看它是否在值为true时被调用,但由于某些奇怪的原因,“return false”没有传递值以提交 我不明白问题是什么。开始感到害怕了,哈哈 <form name="newuser" id="form" method="post" action="do_new_user.php" onSubmit="return validateForm(false)"> fun

谢谢你到目前为止的投入。 逻辑是存在的,但它仍然不想提交时,通过真提交。。。 我添加了一个警报,以查看它是否在值为true时被调用,但由于某些奇怪的原因,“return 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; 
}


}

函数validateForm(submitNow){
if(submitNow==true){
警报(“呼叫正常”);
返回true;
}
其他的
{
var x=document.forms[“newuser”][“name”].value;
var x2=document.forms[“新用户”][“姓氏”]。值;
var x3=document.forms[“newuser”][“email”].value;
var x4=document.forms[“newuser”][“password1”]。值;
var x5=document.forms[“newuser”][“password2”].value;
如果(x==null | | x==“”)
{
美元(“#表格#状态”).fadeIn(“慢”);
$(“表格状态”)。文本(“请输入您的姓名”);
返回false;
}
如果(x2==null | | x2==“”)
{
美元(“#form#U status p”)。fadeIn(“慢”);
$(“#表格#U状态”)。文本(“请输入您的姓氏”);
返回false;
}
如果(x3==null | | x3==“”)
{
美元(“#表格#状态”).fadeIn(“慢”);
$(“表格状态”)。文本(“请输入您的电子邮件地址”);
返回false;
} 
var atpos=x3.indexOf(“@”);
var dotpos=x3.lastIndexOf(“.”);

如果(atpos如果我理解正确,则应在未接收电子邮件时提交表单(以及所有其他字段正常)

这似乎是在代码的这一点上完成的:

$("#form_status").fadeIn("slow");
     $("#form_status").text("Email ok.");
     validateForm(true);
}  
您必须捕获参数,以便提交表单,这可以在函数开始时完成:

function validateForm(submitNow) {

   if (submitNow) return true;

   [... rest of function...]
}
感谢A.沃尔夫和卡尔·安德烈·加农的评论,我的第一个回答太快了:)

更新:

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

<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>

函数validateform(submitNow){
if(submitNow)返回true;
else if($('#input').val())返回validateform(true);
警报(“请输入值”);
返回false;
}

这将递归调用submit方法true…因此它必须捕获参数…我将在post call中编辑我的answerReturn不会提交表单。@OP这里有一个巨大的安全问题,您需要进行PHP验证,因为用户可以在post调用期间更改值,但我相信您知道。+1 Karl Andre,或者至少,仔细检查数据在提交后,如果用户强制提交表单(这很简单),则拒绝。这让我感到困惑…当所有值都为真时,仍然不提交…有人知道问题在哪里吗?谢谢