Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Post不会立即使用ajax发送_Javascript_Ajax_Forms_Jquery - Fatal编程技术网

Javascript Post不会立即使用ajax发送

Javascript Post不会立即使用ajax发送,javascript,ajax,forms,jquery,Javascript,Ajax,Forms,Jquery,我在Firebug中看到,包含输入字段值的帖子只发送更新页面,而不是立即发送。为什么?您没有为表单提交注册正确的单击/提交处理程序。相反,您只能在文档就绪时调用$.ajax。这就是为什么您只能在页面加载上看到提交,或者更准确地说,是文档就绪 您需要收听submit事件,因此将代码更改为如下内容 <script src="http://www.ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js></script>

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

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

您需要收听submit事件,因此将代码更改为如下内容

<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>

如果您的javascript位于页面的末尾,则无需等待文档准备就绪,此时它始终处于就绪状态。我注意到您同时包含了jQuery的v1.9和v1.10,这通常是不需要的,也不可取的。

什么不是立即的意思?什么时候寄?为什么在页面上包含两个版本的jQuery?另外,如果您想用$inputcampo按ID选择元素,您不应该给元素一个ID属性吗?更新页面意味着什么?另外,如果您要手动生成查询字符串,那么不要忘记用encodeURIComponent转义用户输入,但不要手动生成查询字符串:数据:{campo:$inputcampo.val},为什么要在页面加载后立即使用Ajax从用户输入中加载内容?如果你不打算真正等待用户输入任何内容,你可以首先在页面上包含内容。这是正确的,但我希望,当用户完成写入输入时,立即有控件进行验证campo@user3079616您需要在超时的同时监听输入字段上的任何keyup事件,以便只在最后发送请求。但这不是你问题的一部分,所以请接受这个答案和/或提出另一个问题或相应地澄清你的问题。
$(document).on("submit", "form", function(e) {
    e.preventDefault();
    $.ajax({
    …
    });
});