Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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验证完成后由ajax提交表单_Javascript_Html_Ajax - Fatal编程技术网

javascript验证完成后由ajax提交表单

javascript验证完成后由ajax提交表单,javascript,html,ajax,Javascript,Html,Ajax,表单验证完成后可以调用ajax。我有一个表单可以在Submit上使用javascript进行验证。我想在javascript验证完成之前提交表单,但不允许提交表单 这是我的表格 <form method="post" id="register-form" class="sky-form" onsubmit="return register_validate()"> <h1 id="acc_title">Create your Account&l

表单验证完成后可以调用ajax。我有一个表单可以在Submit上使用javascript进行验证。我想在javascript验证完成之前提交表单,但不允许提交表单

这是我的表格

<form method="post" id="register-form" class="sky-form" onsubmit="return register_validate()">
              <h1 id="acc_title">Create your Account</h1><br>
      <fieldset>
        <div class="row">
          <div class="col-sm-12">
           <div class="form-group">
            <label class="input"> <i class="icon-append icon-user"></i>
              <input type="text" name="fname" id="fname" placeholder="First Name">
            </label>
           <span style="display:none; color:red;" id="fname_error" class="input-notification error png_bg">Please Enter First Name.</span>
            </div>

          </div>
          </div>
          <div class="row">
          <div class="col-sm-12">
           <div class="form-group">
            <label class="input"> <i class="icon-append icon-user"></i>
              <input type="text" name="lname" id="lname" placeholder="Last Name">
            </label>
            <span style="display:none; color:red;" id="lname_error" class="input-notification error png_bg">Please Enter Last Name.</span>
            </div>

          </div>
          </div>
          <div class="row">
          <div class="col-sm-12">
           <div class="form-group">
            <label class="input"> <i class="icon-append icon-envelope-alt"></i>
              <input type="email" name="user_email" id="user_email" placeholder="Email">
            </label>
             <span style="display:none; color:red;" id="email_error" class="input-notification error png_bg">Please Enter Email.</span>

            </div>
            </div>
            </div>

          <div class="row">
          <div class="col-sm-12">
          <div class="form-group">
            <label class="input"> <i class="icon-append icon-phone"></i>
              <input type="text" name="user_phone" id="user_phone" placeholder="Phone">
            </label>
            <span style="display:none; color:red;" id="phone_error" class="input-notification error png_bg">Please Enter Phone No.</span>
            </div>
          </div>
        </div>

        <div class="row">
          <div class="col-sm-12">
          <div class="form-group">
            <label>Type:</label>
              <input type="radio" name="package_type" id="package_type" value="2" checked> Individual
              <input type="radio" name="package_type" id="package_type" value="3"> Company

            </div>
            <input type="hidden" name="package_id" id="package_id" value="1">
          </div>
        </div>  
        <div class="row">
          <div class="col-sm-12">
        <div class="form-group">
        <label class="checkbox"><input type="checkbox" name="checkbox-inline" ><i></i>Agree with <a href="#">Terms & Conditions</a></label>
                    </div>
                    </div>
                    </div>

      </fieldset>
      <footer>
       <input  type="submit" name="register" class="login loginmodal-submit navigator_button" value="Register" data-navigate_to="code_form" data-navigate_from="code">
      </footer>
        <div class="login-help" id="login-help">
                Already have account? <a href="#">login here</a>
              </div>

    </form>

创建您的帐户
请输入名字。 请输入姓氏。 请输入电子邮件。 请输入电话号码。 类型: 个人 公司 同意 已经有账户了吗?
这是我的javascript代码

    <script type="text/javascript">

  function register_validate(e)
  {
      e.preventDefault();
      var check = false;
      var fname=document.getElementById("fname");
      var lname=document.getElementById("lname");
      var email=document.getElementById("user_email");
      var phone=document.getElementById("user_phone");


     if(fname.value == "")
        { 
        $('#fname_error').show();
        fname.focus();
        check = false;
        }
    else
        {
        $('#fname_error').hide();
        }

    if(lname.value == "")
        { 
        $('#lname_error').show();
        lname.focus();
        check = false;
        }
    else
        {
        $('#lname_error').hide();
        }
    if(email.value == "")
        { 
        $('#email_error').show();
        email.focus();
        check = false;
        }
    else
        {
        $('#email_error').hide();
        }
    if(phone.value == "")
        { 
        $('#phone_error').show();
        phone.focus();
        check = false;
        }
    else
        {
        $('#phone_error').hide();
        }
    if(check==false){
      return false;
    }else if(check==true)
     return true ;

     $.ajax({
                    url: 'reg_submit.php',
                    type: 'POST',
                    data: $(form).serialize(),
                    success: function(response) {
                        alert(response);
                    }            
                });

  }

功能寄存器验证(e)
{
e、 预防默认值();
var检查=假;
var fname=document.getElementById(“fname”);
var lname=document.getElementById(“lname”);
var email=document.getElementById(“用户电子邮件”);
var phone=document.getElementById(“用户电话”);
如果(fname.value==“”)
{ 
$('fname_error').show();
fname.focus();
检查=错误;
}
其他的
{
$('fname_error').hide();
}
如果(lname.value==“”)
{ 
$('lname_error').show();
lname.focus();
检查=错误;
}
其他的
{
$('lname_error').hide();
}
如果(email.value==“”)
{ 
$(“#电子邮件错误”).show();
email.focus();
检查=错误;
}
其他的
{
$(“#电子邮件错误”).hide();
}
如果(phone.value==“”)
{ 
$(“#电话错误”).show();
phone.focus();
检查=错误;
}
其他的
{
$(“#电话错误”).hide();
}
如果(检查==false){
返回false;
}否则如果(检查==true)
返回true;
$.ajax({
url:'reg_submit.php',
键入:“POST”,
数据:$(表单).serialize(),
成功:功能(响应){
警报(响应);
}            
});
}

在验证完成后,我对调用ajax感到困惑。提前感谢

使用以下方法启动功能寄存器\u验证:

function register_validate(e){
  e.preventDefault()
}

这将阻止表单自行提交。现在您需要从函数中自己调用ajax。如果需要更多信息,请选中“阻止提交表单”

……编辑

    function register_validate(e) {
    e.preventDefault();
    var check = false;

    if(fname.value == "") { 
        $('#fname_error').show();
        fname.focus();
    } else {
        $('#fname_error').hide();
       check = true;
    }



    if( check ) {
      $.ajax({});
    }

 }
您还可以初始化一个标志,例如
var flag=false然后
flag=true
。另外,从表单中删除return语句。只需调用函数
onsubmit=“register_validate();”

Remove

返回true;验证成功后,否则它将从该步骤返回,并且不会执行ajax调用

if(check==false){
      return false;
    }else if(check==true)
     return true ;

     $.ajax({
                    url: 'reg_submit.php',
                    type: 'POST',
                    data: $(form).serialize(),
                    success: function(response) {
                        alert(response);
                    }            
                });

并在函数的开头添加e.preventDefault(),以防止表单提交

function register_validate(e){
     e.preventDefault();

不要在验证代码中返回true语句,而是将ajax调用放在提交表单中。请解释您在代码中所做的更改,这样读者就不必自己进行区分。您是否只删除了行
return true?表单未提交,验证也不起作用
function register_validate(e){
     e.preventDefault();