jQuery.post没有触发表单提交

时间:2013-05-22 17:40:03

标签: jquery

<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调试器和断点,那么帖子就会触发。这有什么不对?

3 个答案:

答案 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帖子,因为表单提交会替换页面。