2014-10-07 49 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