2013-01-10 30 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

我發現實際上不可能使用編程專注於文本框。這是可用性問題.. –