2017-09-25 21 views
1

假設有一個標準的HTML輸入字段編程方式把輸入編輯狀態(就像點擊它與鼠標)

<input id="inputEl" type="text"> 

當我點擊它,我的鼠標,它開始被「編輯」(一在開始時編輯線開始閃爍) - 就像每個輸入字段一樣。

使用jQuery,我試圖模擬,所以沒有我用鼠標點擊它,它會進入編輯狀態。

我曾嘗試:

  • $('#inputEl').click()
  • $('#inputEl').keydown()
  • $('#inputEl').focus()
  • $('#inputEl').focusin()
  • $('#inputEl').blur()
  • $('#inputEl').select()
  • $('#inputEl').trigger('input')

但似乎沒有辦法。

實現此目的的正確方法是什麼?

+0

「焦點」 一詞是你 setTimeout(function() { $('.js-search-field').focus() }, 3000);作品尋找,FYI。 –

+1

我覺得'.focus()'是正確的方法 –

+0

jQuery肯定是加載的,否則我會得到'$()'錯誤。我只是嘗試在頂部的StackOverflow的搜索輸入。 '$( 'JS-搜索字段')。對焦()'。它也沒有辦法。打開您的控制檯並嘗試。 jQuery中存在SO – senty

回答

1

.focus()在這裏是正確的方法,您面臨的問題可能與其他問題有關。

至少它正在這裏 http://jsfiddle.net/KN6rs/

focus()功能無法在控制檯上工作,因爲: $.focus() not working

我試過SO

+0

是的,我認爲它與其他問題有關。它在你的例子中起作用;我也玩過它,它確實在那裏工作。但是,您可以嘗試將StackOverflow的搜索輸入放在編輯狀態的頂部嗎? '$('。js-search-field')。focus()'不會成功。您可以通過打開您的控制檯來嘗試它; jQuery注入到SO中。 – senty

+1

@senty焦點不能在控制檯上工作,因爲https://stackoverflow.com/questions/15859113/focus-not-working –

+0

這就是事情!高手!!!非常感謝! – senty

1

看起來像你想模擬click事件。您可以使用trigger()通過jQuery做,像這樣:

$("#inputEl").trigger("click"); 

下面是一個例子:

$("#inputEl").trigger("click"); 
 
function wasClicked() { 
 
    console.log('Click event was successfully simulated') 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="inputEl" type="text" onclick="wasClicked()">

或者,如果你想只是爲了focus該輸入,在這裏是:

$("#inputEl").focus()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="inputEl" type="text">

+0

打開您的控制檯,並嘗試將StackOverflow的搜索框置於該編輯狀態的頂部,就像使用鼠標單擊一樣。 '$('。js-search-field')。trigger(「click」);'不會把它放在那個模式上。 – senty

+0

是的,這是行爲,但它不適用於SO的輸入。 '$('。js-search-field')。focus()'在這種情況下不會訣竅 – senty

1
$(document).ready(function() { 
    $('#inputEl').focus(); 
}); 

這是您的解決方案。您只需在DOM加載時執行此操作。 $(document).ready已經處理好了。

相關問題