Javascript Focus()在任何导航器中都不工作

Javascript Focus()在任何导航器中都不工作,javascript,ajax,prototypejs,Javascript,Ajax,Prototypejs,我只是简单地说: setTimeout(function() { $('nombreAsegurado').focus(); }, 0); 这与下拉菜单有关,当用户单击搜索输入时,会显示一个下拉菜单,然后用户选择一个项目,菜单消失,然后我想关注输入,以便用户可以在下拉菜单中之前选择的cathegory中搜索 我正在使用原型框架(我讨厌它)。此输入由ajax请求调用,这与问题有关吗 要素: <input type="text" value="Ingrese" size="2

我只是简单地说:

setTimeout(function() { $('nombreAsegurado').focus(); }, 0);
这与下拉菜单有关,当用户单击搜索输入时,会显示一个下拉菜单,然后用户选择一个项目,菜单消失,然后我想关注输入,以便用户可以在下拉菜单中之前选择的cathegory中搜索

我正在使用原型框架(我讨厌它)。此输入由ajax请求调用,这与问题有关吗

要素:

        <input type="text" value="Ingrese" size="20" maxlength="60" name="nombreAsegurado" id="nombreAsegurado" style="color: #666666;font-family: Verdana,Arial,Helvetica,sans-serif;font-size: 10px;vertical-align:middle;background: url(${self.monitor.basePath}images/input_bg.png) repeat-x scroll 0 0 transparent;border: 1px solid #C4C4C4;padding: 2px 4px;" onclick="if(this.value=='Ingrese Asegurado') this.value=''; this.style.border='1px solid #C4C4C4'; DisplayOptions();" onkeypress="if (event.keyCode==13) buscar_asegurado();" onblur="CloseOptions();">

问题解决后,我更改了此行的位置:

setTimeout(function() { $('nombreAsegurado').focus(); }, 0);

我把它放在了我的函数末尾

所以有一个id为“nombreAsegurado”的元素?确切地说,我忘了粘贴HTML。我会编辑的。(在Firefox中)Thanka对我来说似乎很好。在函数运行时,该输入元素是否可能不存在?不,这是不可能的,因为我单击了要集中的输入,以显示下拉菜单。然后我从菜单中选择一个选项,它消失了。然后,focus()应该指向我最初点击的输入,清楚吗?这是一种奇怪的行为,这就是为什么我考虑AJAX,因为输入以前是由AJAX加载的。我会使用
console.log()
或其他方法确保调用了timeout函数并且“nombreAsegurado”元素确实存在。