加载html页面时阻止javascript执行

时间:2014-08-14 15:29:18

标签: javascript html ajax

我尝试使用ajax提交表单,所以我写了这个脚本:

$(document).ready(  
function doAjaxPost() {
        var email = $('#user_email').val();
        var firstName = $('#user_firstName').val();
        var lastName = $('#user_lastName').val();
        var password = $('#user_password').val();

        $
                .ajax({

                    type : "POST",
                    async: false ,
                    url : "home1",
                    data : "email=" + email + "&firstName=" + firstName
                            + "&lastName=" + lastName + "&password=" + password,

                    success : function(response) {

                        alert('Error: '+ "test");
                        if(response.result=="error")
                        $('#info').html(
                                response.message);

                    },

                    error : function(e) {

                        alert('Error: ' + e);

                    }

                });

    }
);
$('#myForm').submit(doAjaxPost());

然后我把它包含在我的page.html中。

但是当我加载页面时脚本已执行但脚本必须拦截提交事件。

如何在加载页面时阻止脚本执行?

3 个答案:

答案 0 :(得分:1)

我认为我已经通过将我的功能代码移动到提交范围中找到了解决方案:

$(document).ready(
$('#myForm').submit(function() {
    var email = $('#user_email').val();
    var firstName = $('#user_firstName').val();
    var lastName = $('#user_lastName').val();
    var password = $('#user_password').val();

    $
            .ajax({

                type : "POST",
                async: false ,
                url : "home1",
                data : "email=" + email + "&firstName=" + firstName
                        + "&lastName=" + lastName + "&password=" + password,

                success : function(response) {

                    alert('Error: '+ "test");
                    if(response.result=="error")
                    $('#info').html(
                            response.message);

                },

                error : function(e) {

                    alert('Error: ' + e);

                }

            });

})
);

答案 1 :(得分:0)

我认为你的问题是最后一行代码:

$('#myForm').submit(doAjaxPost());

使用此代码,您要告诉jquery解雇"提交#34;事件到表格。尝试将其替换为:

$('#myForm').bind('submit', doAjaxPost);

答案 2 :(得分:0)

只需交换最后两行并取出异步:false。