Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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 只有在文档内的警报就绪后,触发器才会工作_Javascript_Jquery_Javascript Events - Fatal编程技术网

Javascript 只有在文档内的警报就绪后,触发器才会工作

Javascript 只有在文档内的警报就绪后,触发器才会工作,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我有以下代码: $(document).ready(function () { active_menu('mn_tours'); $('#buscar').val(localStorage.getItem("busqueda")); $('#btbuscar').trigger('click'); }); 我想在页面加载时立即触发该按钮上的submit事件,但它似乎不起作用,但当我放置以下内容时: $(do

我有以下代码:

$(document).ready(function () {
            active_menu('mn_tours');
            $('#buscar').val(localStorage.getItem("busqueda"));
            $('#btbuscar').trigger('click');
        });
我想在页面加载时立即触发该按钮上的submit事件,但它似乎不起作用,但当我放置以下内容时:

$(document).ready(function () {
            active_menu('mn_tours');
            $('#buscar').val(localStorage.getItem("busqueda"));
            alert('Something');
            $('#btbuscar').trigger('click');
        });

它实际上是有效的,但我不知道如何纠正这一点。

通过初步测试,这段代码有效

<form id="myForm" action="#" method="POST">
  <input type="text" id="buscar"/>
</form>
<div id="btbuscar">
  help
</div>


$(document).ready(function () {
  $('#buscar').val(localStorage.getItem("busqueda"));
  $("#btbuscar").bind('click', function(evt){
    $("#myForm").submit()
  })
  $("#myForm").bind('submit', function(evt){
    alert("form submitted")
  })
  $('#btbuscar').trigger('click');
});

帮助
$(文档).ready(函数(){
$('#buscar').val(localStorage.getItem(“busqueda”);
$(“#btbuscar”).bind('click',函数(evt){
$(“#我的表格”).submit()
})
$(“#myForm”).bind('submit',函数(evt){
警报(“已提交表格”)
})
$('btbuscar')。触发器('click');
});

如果没有看到原始的按钮侦听器分配,我无法判断这是否正是您想要的,但是如果侦听器设置正确,此方法将起作用。

您有一个计时问题。当javascript运行此命令时:

$('#btbuscar').trigger('click');
HTML元素还不存在,所以提交永远不会发生

警报将暂停javascript执行。因此,当您单击OK时,页面上已经加载了HTML元素#btbuscar,并且提交了工作

这不安全,但可以使用setTimeout

$(document).ready(function () {
    active_menu('mn_tours'); 
    setTimeout(function(){
        $('#buscar').val(localStorage.getItem("busqueda"));
        $('#btbuscar').trigger('click');
    },1000);
});

什么是活动菜单?这是一个异步函数吗?@MikeC是的,这是一个异步函数,但这不是真正的问题:/它是否设置了
#btbuscar
上的单击事件?因为听起来提交事件和其他东西还没有设置好。拥有一个
警报
允许异步函数完成。@MikeC该函数
活动菜单
所做的唯一事情就是将“活动”类设置为链接。请发布您正在使用的HTML和活动菜单函数。这真的很有帮助。我不希望显示警报,我希望在de document ready函数中触发click事件,以便它触发submit事件进行搜索。我发布了警报函数,因为这是触发器工作的唯一方式,但我不希望显示警报。不要紧,它有时与
$(“#search_tour”).submit()一起工作在dom ready内部,这是表单:我想在页面加载后立即提交表单。这是我的答案吗?其他解决方案是在页面加载时触发单击按钮还是在表单上提交?