Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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
Javascript 在.focusout()之前触发表单提交_Javascript_Jquery_Html_Forms - Fatal编程技术网

Javascript 在.focusout()之前触发表单提交

Javascript 在.focusout()之前触发表单提交,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我有一个搜索表: <form id="search" role="search" method="get" action="/"> <input id="search-text" type="text" placeholder="Search" name="s"> <input id="search-submit" type="submit" value=""> <div id="search-toggle"></di

我有一个搜索表:

<form id="search" role="search" method="get" action="/">
    <input id="search-text" type="text" placeholder="Search" name="s">
    <input id="search-submit" type="submit" value="">
    <div id="search-toggle"></div>
</form>
如果单击了
#搜索提交
按钮,如何确保在隐藏所有内容之前提交表单


目前,表单提交从不触发。

一种方法是在隐藏表单之前使用很少的超时,以便提交事件可以正确传播:

$('#search-text').focusout(function () {
    var self = this;
    timeout = setTimeout(function() {
        $('#search-submit, #search-toggle, .social').add(self).toggle();
    }, 200);
});

$('#search').on('submit', function() {
    clearTimeout(timeout);
});
演示:
$('#search-text').focusout(function () {
    var self = this;
    timeout = setTimeout(function() {
        $('#search-submit, #search-toggle, .social').add(self).toggle();
    }, 200);
});

$('#search').on('submit', function() {
    clearTimeout(timeout);
});