-1
<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)时,我首先希望将帖子发送到 url“/userq”,然后提交“/search”的最终操作。但是 $.post 到 "/userq" 永远不会发生。如果我在 $.post 处使用 javascript 调试器和断点,那么帖子就会触发。这里有什么问题?

4

3 回答 3

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;
            });
         });
    })
于 2013-05-22T17:43:00.537 回答
1

问题可能是,因为您在表单元素中定义了“ GET ”方法和“ ACTION ”,请尝试 event.preventDefault();停止表单正常提交,以便它可以调用jQuery.post()

 $(document).ready(function () {
        $("#search-form").submit(function() {
            event.preventDefault();
            var formInput = $("#search-box").val();
            $.post("/userq/", {"formInput": formInput});
            return true;
         });
    });

试试这个然后检查。

于 2013-05-22T17:46:41.470 回答
0

实际上意识到这是不可能的。jquery 帖子实际上从未发生过,因为表单提交替换了页面。

于 2015-10-16T10:43:26.447 回答