2013-01-10 28 views
0

可能重复:
iPhone Trigger keyboard in input field (HTML/Javascript).Focus()不使用jQuery或JavaScript工作在jQuery Mobile的

我对jQuery Mobile的现场工作。我想使用JavaScript或jQuery将焦点放在文本字段上,以便它弹出键盘。我尝试过.focus(), .select().trigger('focus'),但它不起作用。 --HTML--

<input id='txt' type='search' value='' /> 

--JQUERY--

$('#txt').focus(); 

$('#txt').select(); 

$('#txt').focus(); 
+1

看看http://api.jquery。com/focus/ –

+0

无法重现:http://jsfiddle.net/3aGbr/ – Quentin

+2

你在哪里运行这段代码,在页头?尝试将它移动到页面底部,就在关闭主体标记之前,或者将其放入DOM准备好的回调中。可能是代码在元素实际位于DOM之前运行。 –

回答

0

应该工作,但因为它不是,我会尝试一些不那么像正常。点击()。你试过了吗?它应该工作。

+0

我也试过,但它不工作...... :( –

2

编辑:不知道你的意思是jQuery Mobile的或移动jQuery的网站,但如果你确实使用jQuery Mobile的,请参阅下面

一些东西,因为你注意到上面你使用jquery mobile

使用的$(document)。在( 'pageinit'),而不是$(文件)。就绪():

的第一件事你在jQuery中学习的是调用 $(document).ready()函数中的代码,以便在加载DOM时立即执行所有操作。但是,在jQuery Mobile中,Ajax用于在导航时将每个页面的 内容加载到DOM中,DOM准备好的 处理程序仅对第一页执行。要在加载和创建新页面时执行代码,可以绑定到pageinit事件。 此事件在本页底部详细解释。

此外,您可能需要插入一个事件里面你.focus代码,如pagecreate事件:

当页面已经在DOM中创建(通过AJAX或 等)触发,但在所有小工具之前有机会加强包含标记的 。此事件对于用户希望 为jQuery移动小部件所做的子标记增强创建自己的定制小部件最有用。

查看文档here上的更多事件。

如果您只是使用常规的jQuery,那么您可能需要将代码包装在$(document).ready(function(){ ... });中。这有助于确保DOM已加载并允许您的jQuery选择器$("#txt")在页面上查找元素。如果在运行JavaScript时尚未加载DOM,则将找不到input

+0

感谢您的回复...我使用jquery mobile.And我的代码是在pageshow事件,所以.focus()将执行每次。 –

+0

是否有你可以用包含你的'focus'调用的'pageshow'函数来更新你的问题的任何方式?这样我可以看一看,看看我是否注意到任何东西。谢谢 – Chase

+0

我发现实际上不可能使用编程专注于文本框。这是可用性问题.. –