在ajax调用完成之前延迟表单提交

时间:2013-07-07 16:17:11

标签: javascript jquery ajax

作为标题声明我正在努力推迟提交帖子,以便完成ajax呼叫。

到目前为止,我有这个,为什么它不起作用的任何想法?

//Jquery
jQuery(document).ready(function($) {
    $("#save").on("click", function(e){


                //Prevent submission of post data before ajax success in function reverse_geocoding
                e.preventDefault();
                //ajax
                reverse_geocoding(lat_onclick,lng_onclick,true);

        }
    });





                    function reverse_geocoding(latitude,longitude,submit) {
                            //get country/city/state using lat and long data
                            jQuery.ajax({
                                url: "<?php bloginfo('template_url'); ?>/reverse-geocoding.php",
                                type: "GET",
                                data: "latitude=" + latitude + "&longitude=" + longitude,
                                cache: false,
                                success: function (data){
                                    var response = jQuery.parseJSON(data);
                                },
                                complete: function() {
                                    if (submit) {
                                        $("#add_to_map").submit();
                                    }
                                }
                            });
                    }
});
//End Jquery

html部分:

<form method="post" name="update_profile_maps" id="add_to_map" action="">
    //some inputs here.
</form>

1 个答案:

答案 0 :(得分:1)

使用普通<submit>(不属于<button>类型,而不是使用submit标记;请注意,键入submit is the default)。单击该按钮后,激活您的ajax,然后在ajax成功完成时使用JavaScript提交表单。