繁体   English   中英

表单未在jQuery ajax中成功提交

[英]Form is not submitting in jQuery ajax success

我正在做一个简单的单文本输入形式。我想从数据库中交叉检查是否存在。所以我的html是

<form action="zoneAdd" method="post"  id="zoneAdd" name="zoneAdd">
            <div class="box-body">
                <div class="form-group">
                    <label>Zone Name<span id="required">*</span></label>
                    <input type="text" class="form-control" name="zone_name" id="zone_name" placeholder="Enter Zone Name" />
                    <span id="zone_name_error"></span>
                </div>
            </div><!-- /.box-body -->
            <div class="box-footer">
                <input type="submit" class="btn btn-primary btn-flat btn-sm" name="submit" value="Submit"/>
            </div>
        </form>

而我的javasript是

 $('document').ready(function(){
    $("[name=submit]").click(function(e){
         e.preventDefault();
        if ($('#zone_name').val().length <= 0) {
            $('#zone_name').addClass("errMsg");
            $('#zone_name_error').addClass("errMsgDngr");
            $('#zone_name_error').html('Please enter Zone name!');
            //isStepValid = false;
        }
        else if(!$('#zone_name').val().match(/^[a-zA-Z\s-, ]+$/)){
            $('#zone_name').addClass("errMsg");
            $('#zone_name_error').addClass("errMsgDngr");
            $('#zone_name_error').html('Please use only alphabats!');
            //isStepValid = false;
        }else{
            var data = {'zone':$('#zone_name').val()}
            $.ajax({
                type:"post",
                data:data,
                url:"<?php echo site_url('zone/checkZoneName');?>",
                success:function(err){
                    if(err == 0)
                    {
                        console.log('hello');
                        $('#zone_name_error').html('');
                        $('#zone_name_error').removeClass("errMsg");
                        $('#zone_name_error').removeClass("errMsgDngr");
                        //document.forms["zoneAdd"].submit();
                        $('form#zoneAdd').submit();
                        //console.log($('form#zoneAdd').submit());
                    }
                    else
                    {
                        $('#zone_name').addClass("errMsg");
                        $('#zone_name_error').addClass("errMsgDngr");
                        $('#zone_name_error').html('Zone Name already existed!');
                    }
                }
            });
        }

    });
});

每件事都是对的。 我的问题是我的表格没有以ajax成功提交

我认为形式动作有问题。 在表单操作中指定确切路径,以便

<form action="<?php echo site_url('filenameWhereyouSubmit')?>"        method="post"  id="zoneAdd" name="zoneAdd">

开始形式如下:

  <form id="FORM-ID" method="post" action="">

对于ajax提交

$(document).ready(function(){ 
     $('#FORM-ID').submit(function(e) {

        var myarray=  array of all form values
        var data = JSON.stringify(myarray);

        e.preventDefault();

        $.ajax({
        type: "POST",
        data: {value:data},
        url: "URL TO SUBMIT",
        success: function() {
             //Sucess function 
        }

    });
 }); 
  1. 您没有在表单提交上使用处理程序的功能,ajax调用发生在$("[name=submit]").click()
  2. ajax成功后,您将提交表单:

     success:function(err){ if(err == 0) { ... $('form#zoneAdd').submit(); ... } } 
  3. 但是submit不是ajax调用,因此请尝试处理onsubmit表单。

像这样的东西:

$('document').ready(function(){
    $('form#zoneAdd').submit(function(e){
         e.preventDefault();

         // You checks code ...

         var data = {
               'zone': $('#zone_name').val()
             };

         $.ajax({

                type:"post",
                data:data,
                url:"<?php echo site_url('zone/checkZoneName');?>",
                success: function (err){

                    if(err == 0)
                    {
                        console.log('hello');
                        $('#zone_name_error').html('');
                        $('#zone_name_error').removeClass("errMsg");
                        $('#zone_name_error').removeClass("errMsgDngr");
                    }
                    else
                    {
                        $('#zone_name').addClass("errMsg");
                        $('#zone_name_error').addClass("errMsgDngr");
                        $('#zone_name_error').html('Zone Name already existed!');
                    }

                }
         });


    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM