Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery.post未在表单提交时触发 $(文档).ready(函数(){ $(“#搜索表单”).submit(函数(){ var formInput=$(“#搜索框”).val(); $.post(“/userq/”,{“formInput”:formInput}); 返回true; }); });_Jquery - Fatal编程技术网

jQuery.post未在表单提交时触发 $(文档).ready(函数(){ $(“#搜索表单”).submit(函数(){ var formInput=$(“#搜索框”).val(); $.post(“/userq/”,{“formInput”:formInput}); 返回true; }); });

jQuery.post未在表单提交时触发 $(文档).ready(函数(){ $(“#搜索表单”).submit(函数(){ var formInput=$(“#搜索框”).val(); $.post(“/userq/”,{“formInput”:formInput}); 返回true; }); });,jquery,Jquery,上面是我的html页面。提交表单(#搜索表单)时,我首先希望将帖子发送到url“/userq”,然后提交“/search”的最终操作。但是“/userq”的$.post从未发生过。如果我在$.post处使用javascript调试器和断点,则会触发post。这里出了什么问题?更好的解决方案: <html> <head> <SCRIPT TYPE="text/javascript" SRC="/static/js/jquery-1.7.1.min.js"><

上面是我的html页面。提交表单(#搜索表单)时,我首先希望将帖子发送到url“/userq”,然后提交“/search”的最终操作。但是“/userq”的$.post从未发生过。如果我在$.post处使用javascript调试器和断点,则会触发post。这里出了什么问题?

更好的解决方案:

<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>

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


试试这个,然后检查。

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

您是否已验证服务器端是否未发生post?为什么不将表单方法更改为post,并将操作更改为您希望的位置?我没看到你对帖子的结果做任何事…@Maess,我不喜欢这种人。他问了又走了。。。我们试图帮助别人,但他们不给我们任何反馈。@RuneFS是的。在服务器端验证了它。它不工作。那么浏览器中的开发人员控制台有什么错误?好的。。我将尝试此操作并让您知道。但这会停止正常操作。如何确保“/search”随后也被提交?如果您希望随后执行这两个操作,那么您可以在按钮单击事件上触发表单提交和jQuery.post()事件。但我希望也遵循正常操作,即提交到“/search”url。所以您希望发布两次?第一次在
/search/
上,第二次在
/userq/
上?是。但有点不同。首先发布到“/userq”,然后进入“/search”。我认为这是一个时间问题。这导致了一个无限循环的post到“/userq”。这也不起作用。没有对“/搜索”的请求。我认为preventDefault()正在阻止这一点。
$(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;
            });
         });
    })
 $(document).ready(function () {
        $("#search-form").submit(function() {
            event.preventDefault();
            var formInput = $("#search-box").val();
            $.post("/userq/", {"formInput": formInput});
            return true;
         });
    });