2011-02-16 102 views
1

我有一个文本框readonly="readonly"这意味着我不能编辑它。但是我想要的是当用户双击它时可以编辑这个文本框。使文本框可编辑使用JavaScript

什么我还没试过是:

<input size="10" readonly="readonly" ondblclick="setEditable(this)"/> 

,并在JavaScript:

function setEditable(i){ 
    i.readonly = false; 
} 

但这并不奏效。所以我怎样才能使文本框可编辑,这是只读,当用户双击它?

回答

6

更新:

为只读再次使其:

var el = document.getElementById('txt'); 
el.onblur = function(){ 
    this.setAttribute('readonly'); 
}; 

你可以这样做:

<input size="10" readonly="readonly" id="txt" /> 

JS:

var el = document.getElementById('txt'); 
el.ondblclick = function(){ 
    this.removeAttribute('readonly'); 
}; 
+0

我怎么能再次让`readonly`使用`的onblur()`? – 2011-02-16 12:25:38

+0

@Harry Joy:查看更新后的答案。 – Sarfraz 2011-02-16 12:27:18

0

如上所述通过sarfraz尝试纯javascript例子,使你的JavaScript低调 更好的做法

另外,作为一个很多人做,如果你有网页上的jQuery现在你可以用它来做到同样的

jquery

$('#txt')。removeAttr(“readonly”);

0

为了使文本字段编辑

document.getElementById("TextFieldId").readOnly=true; 

为了使文本字段不可编辑

document.getElementById("TextFieldId").readOnly=false;