<html>
<head>
<SCRIPT TYPE="text/javascript" SRC="/static/js/jquery-1.7.1.min.js"></SCRIPT>
<script type="text/javascript">
$(document).ready(function () {
$("#search-form").submit(function() {
var formInput = $("#search-box").val();
$.post("/userq/", {"formInput": formInput});
return true;
});
});
</script>
</head>
<body>
<form method="GET" action="/search/" id="search-form">
<input type="text" name="formInput" class="searchbox" id="search-box">
<input type="submit" VALUE="Search" class="submitbutton" id="submit-button">
</form>
</body>
</html>
上面是我的html页面。提交表单(#search-form)时,我首先要将帖子发送到网址“/ userq”,然后提交“/ search”的最终操作。但是$ / userq的$ .post永远不会发生。如果我在$ .post使用javascript调试器和断点,那么帖子就会触发。这有什么不对?
答案 0 :(得分:1)
更好的解决方案:
$(document).ready(function () {
var sended = false;
$("#search-form").on('submit', function(e) {
e.preventDefault();
var formInput = $("#search-box").val();
$.post("/userq/", {"formInput": formInput})
.done(function(){
if(!sended)
$("#search-form").submit();
sended = true;
});
});
})
答案 1 :(得分:1)
问题可能在于,您已在表单元素中定义了“ GET ”方法和“操作”
尝试将event.preventDefault();
设置为阻止表单正常提交,以便可以调用jQuery.post()
。
$(document).ready(function () {
$("#search-form").submit(function() {
event.preventDefault();
var formInput = $("#search-box").val();
$.post("/userq/", {"formInput": formInput});
return true;
});
});
试试这个,然后检查。
答案 2 :(得分:0)
实际上意识到这是不可能的。实际上从未发生过jquery帖子,因为表单提交会替换页面。