<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包含输入字段的值只发送更新页面而不是立即发送。为什么呢?
答案 0 :(得分:0)
您没有为表单提交注册正确的点击/提交处理程序。相反,您只能在文档就绪时调用$.ajax
。这就是为什么你只看到页面加载的提交(或更准确,文档就绪)。
您需要收听提交事件,因此请将代码更改为以下内容
$(document).on("submit", "form", function(e) {
e.preventDefault();
$.ajax({
…
});
});
如果您的javascript位于页面的末尾,则无需等待文档准备就绪(此时它始终就绪)。我注意到你包含jQuery的v1.9和v.1.10,这通常不需要也不可取。