防止javascript执行时,我加载html页面

Prevent javascript to execute when i load the html page

本文关键字:加载 html 页面 javascript 执行 防止      更新时间:2023-09-26

我尝试使用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中。

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

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

我想我已经找到了一个解决方案,通过移动我的函数代码到提交范围:

$(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);
                }
            });
})
);

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

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

在这段代码中,你告诉jquery触发"提交"事件到表单。尝试将其替换为:

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

只需交换最后两行并去掉async: false。