【问题标题】:jQuery ajax check and submit form, always have to submit twice when ajax return nofoundjQuery ajax检查并提交表单,ajax返回nofound时总是要提交两次
【发布时间】:2010-11-25 20:50:23
【问题描述】:

我有这个 ajax 检查以查看名称是否已找到或未找到。找到数据返回时可以正常工作,但是返回nofound时,我必须再次提交才能触发它。

有人对此有建议或更好的解决方案吗?

$('#formletter').submit(function() {
    var name = $('#name').val();

    if ($.formLoading != false) {
        $.ajax({
        type: 'POST',
        url: "submit_ajax_contents.php",
        data: "namecheck="+name,
        success: function(data) {
            if(data == 'nofound'){
            $.formLoading = false;
            $('#formletter').submit();
            }else{
            alert('found');
            $.formLoading = true;
            }
        }
        });
    return false;
    } else {
    return true;
    }

    });

});

非常感谢:)

【问题讨论】:

    标签: jquery ajax forms triggers submit


    【解决方案1】:

    您可能想要进行非异步 ajax 调用:(我没有测试此代码)

    $('#formletter').submit(function(event) {
        var name = $('#name').val();
        var found = false;
        $.ajax({
            async: false,
            type: 'POST',
            url: "submit_ajax_contents.php",
            data: "namecheck="+name,
            success: function(data) {
                if(data == 'found')
                    found = true;
            }
        });
        if (found)
            event.preventDefault();
    });
    

    【讨论】:

    • 请注意,如果ajax调用失败,它将假定foundfalse(即值不会改变)
    • 而且,当然,您应该向用户表明名称检查正在完成,这样用户就不会在几秒钟后惊慌失措,似乎什么也没发生。
    • 是的,我会注明名称检查。
    猜你喜欢
    • 2013-12-10
    • 1970-01-01
    • 2011-06-17
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多