2014-10-07 60 views
0

我試着建立一些東西,一些建議作爲一種通用的方式來幫助用戶把東西放到剪貼板,機智,彈出一個模式對話框,選擇正確的文本並邀請用戶按下Ctrl-C/Opt-C。我主要在那裏,但我似乎無法專注於輸入框。的onclick()負責人到這個簡單的功能:又一個「焦點()將無法工作」

function clipboard() 
{ 
var tag = $("#tag").text(); 
$("#clipboardModal").modal('show'); 
$("#copyTag").val(tag); 
$("#copyTag")[0].focus(); 
$("#copyTag").select(); 
} 

我已經想通了,$(X).focus()不設定對焦和你需要做以下$(X)獲得(0) .focus()或$(x)[0] .focus()進行實際對焦。但是,我從來沒有把焦點放在輸入字段上。 Chrome始終將焦點固定在點擊調用剪貼板()的按鈕上。資源管理器將焦點放在X關閉按鈕之前的模式對話框中。我可以選擇幾次,並且我在輸入框中。但無論如何,我沒有得到我想要的。 (注:選擇()以上是無關緊要的,因爲它從來沒有得到集中在那裏開始。)爲了完整起見,這裏的HTML:

<!-- START: clipboardModal - modal dialog for selecting gadgets --> 
<div id="clipboardModal" class="modal fade fuelux"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
       <h4 class="modal-title">Your Tag</h4> 
      </div> 
      <div class="modal-body" id="gadgetChangeID"> 
       <p>Press Ctrl-C/Opt-C to copy to clipboard</p> 
      </div> 
      <input id="copyTag" type="text" /> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-primary" data-dismiss="modal">Close</button> 
      </div> 
     </div> 
    </div> 
</div> 
<!-- END: clipboardModal --> 

任何線索我怎麼能得到對焦到我的輸入字段?

+0

上的ID我不認爲選擇時,你不應該需要得到jQuery的數組的索引之外......應該只有每個ID一個項目。你有沒有試過'$(「#copyTag」)。focus();'? – OneHoopyFrood 2014-10-07 18:16:00

+0

'[0]'從jquery數組中返回純html元素。 – Banana 2014-10-07 18:16:55

+0

@Banana,是的,但我認爲你不應該在這種情況下這樣做。查看3d示例[here](http://api.jquery.com/focus/) – OneHoopyFrood 2014-10-07 18:19:04

回答

2

這是行不通的嗎?

function clipboard(){ 
    var tag = $("#tag").text(); 
    $("#clipboardModal").modal('show'); 

    $('#clipboardModal').on('shown.bs.modal', function (e) { 
     $("#copyTag").val(tag); 
     $("#copyTag").focus(); 
     $("#copyTag").select(); 
    }); 
} 

只有在實際顯示模態後,纔會關注輸入文本。

的上顯示的代碼,甚至是功能

$('#clipboardModal').on('shown.bs.modal', function (e) { 
    $("#copyTag").val(tag); 
    $("#copyTag").focus(); 
    $("#copyTag").select(); 
}); 
function clipboard(){ 
    var tag = $("#tag").text(); 
    $("#clipboardModal").modal('show'); 
} 
+0

賓果!這是解決方案。我懷疑這樣的事情,但不知道究竟是什麼。 – Argle 2014-10-07 18:24:03