帖子不会立即使用 ajax 发送

Post not sent immediately with ajax

本文关键字:ajax 发送      更新时间:2024-05-22
<script src="http://www.ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js></script>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<form>
<label>Campo</label>
<input id="campo" name="campo" placeholder="Campo" required="" type="text">
</form>  
<script language="JavaScript" type="text/javascript">
        $(document).ready(function() {
            $.ajax({
            url: "control.php",
            type: "POST",
            data: "campo=" + $("input#campo").val(),
            success : function(data) {
                if (data == 1) {
                    $("#div").html("Campo non disponibile");
                }
                else {
                    $("#div").html("Campo disponibile :)");
                }
            }
            });
        });
</script>

我在Firebug上看到POST包含输入字段的值,仅更新页面而不是立即发送。为什么?

您没有为表单提交注册正确的单击/提交处理程序。相反,您仅在文档就绪时调用$.ajax。这就是为什么您只在页面加载时看到提交(或者更准确地说,文档就绪(。

您需要侦听提交事件,因此请将代码更改为如下所示的内容

$(document).on("submit", "form", function(e) {
    e.preventDefault();
    $.ajax({
    …
    });
});

如果你的javascript在页面的末尾,你不需要等待文档准备好(它总是在那个时候准备好(。我注意到你包含了jQuery的v1.9和v.1.10,这通常是不需要的,也是不可取的。