Javascript Post不会立即使用ajax发送
我在Firebug中看到,包含输入字段值的帖子只发送更新页面,而不是立即发送。为什么?您没有为表单提交注册正确的单击/提交处理程序。相反,您只能在文档就绪时调用$.ajax。这就是为什么您只能在页面加载上看到提交,或者更准确地说,是文档就绪 您需要收听submit事件,因此将代码更改为如下内容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>
<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({
…
});
});