在输入字段中选择文本,但禁用编辑

时间:2011-03-21 20:02:32

标签: jquery select input

我有一个简单的txt输入字段:

<input type="text" name="" value="http://google.com" />

如果我在输入内部单击,我想选择文本。这部分没关系:

  

$( 'input.highlight')。点击(函数(){

     

$(本).focus()选择();

     

返回false;

     

});

但是,我也想禁用编辑。如果我把假回报;到keydown事件,ctrl + c不起作用。如果我将disabled =“disabled”设置为输入,则select不起作用。

有什么想法吗?感谢。

3 个答案:

答案 0 :(得分:14)

您想要添加 readonly 属性,而不是已禁用

<input type="text" name="" readonly="readonly" value="http://google.com" />

答案 1 :(得分:1)

使用jQuery,您可以使用keypress()preventDefault()函数

$('input').click(function(e) {
    $(this).focus().select();
    $(this).keypress(function(e){
    e.preventDefault();
    })

});

检查http://jsfiddle.net/hAVg9/

处的工作示例

答案 2 :(得分:0)

只读用途与禁用用途有很大不同,并且其布局也有很大差异。

要从禁用的输入文本中选择甚至复制文本,可以遵循 Andy E suggestion

或者,就我而言,要有一个与输入文本关联的按钮(附加输入组)。 然后在按钮上单击:

  1. 启用输入文字
  2. 选择或关注或您想做什么
  3. 再次禁用

赞:

$('#btnCopy').click(function(){
    $('#txtInputDisabled').removeAttr('disabled');  
    $('#txtInputDisabled').select();
    document.execCommand("copy");
    $('#txtInputDisabled').attr('disabled','disabled');  
});

完整示例jsfiddle