0

似乎有很多几乎相同的问题的答案,但我似乎无法解决这个问题。如果你看过一千遍,请原谅我:

我有一个需要使用 ajax 提交的表单,但我无法让它正确完成。它需要提交,而不是刷新(如您所料),但我做什么似乎并不重要,我所能做的就是将 POST 附加到页面的当前 URL。我已经将表格精简到最低限度,并且仍然得到这个结果,所以我一定做错了什么。任何帮助表示赞赏,谢谢!

<html>
    <body>
        <form class="form horizontal" id="logForm">
            <fieldset>
                <div class="control-group">
                    <div style="float: left">
                        <label for="from">Start Date: </label>
                        <div class="controls">
                            <input type="text" id="from" name="from" />
                        </div>
                        <label for="to">End Date:</label>
                        <div class="controls">
                            <input type="text" id="to" name="to" />
                        </div>
                    </div>
                </div>
            </fieldset>

            <div class="form-actions">
                <button type="submit" class="btn btn-primary" id="subButton" style="float: left">Search!</button>
            </div>
        </form>
        <script>
            $("#logForm").submit(function() {
                $.ajax({
                    url: 'logQuery.php',
                    type: 'get',
                    dataType: 'json',
                    data: $('form#logForm').serialize(),
                    success: function(html) {
                    alert('worked good');
                    return false;
                    }
                });
            });
        </script>
    </body>
</html>
4

1 回答 1

0

更改您的脚本添加就绪并在正确的行上返回 false。您return false何时完成异步操作,这可能是在函数返回之后。这就是为什么您不阻止提交事件的标准行为。

返回应该在submit()函数内部。

暗示:

您不需要使用form#logForm,因为只有一个 id=logForm 的元素(至少应该如此)#logForm就足够了。

将事件绑定到元素时,也始终使用 document.ready。这将确保您加载站点上的所有元素,以便您可以将事件绑定到它们。

您也可以使用preventDefault(),但return false也很好。

 $(function (){
       $("#logForm").submit(function() {
            $.ajax({
                url: 'logQuery.php',
                type: 'get',
                dataType: 'json',
                data: $('form#logForm').serialize(),
                success: function(html) {
                alert('worked good');
                }
            });
           return false;
        });

 });
于 2013-07-03T07:00:43.343 回答