我有两个要素:
另一方面,我有一个名为onDoubleClick的事件,它在按钮中双击时调用一个函数。此功能隐藏按钮并显示文本字段,但我需要在此时编辑文本字段(如点击第三次)
我读到了关注焦点(),但它对我没有帮助...... http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_html_blur
我怎样才能获得它?
修改:
我很好地获得了输入元素:
var htmlElement = document.getElementById(this._tabsTitle[pos]._hPath);
var input = htmlElement[0];
input.focus();
htmlElement var是一个表单,输入 var是输入字段,我很好,我正在寻找带有调试器的chrome检查器,但是focus()不起作用......
解
这是我的错误...这个代码是一个大项目的一部分,重点工作正常,但由于线程问题没有做任何事情 ...我检查了一下解决了它,现在它就像一个魅力:-)感谢所有
问候,丹尼尔
答案 0 :(得分:2)
这可能是一个时间问题吗?
请试试这个:
onDoubleClick(function(){
setTimeout(function(){
button.focus();
},50);
});
答案 1 :(得分:1)
检查this fiddle。我相信它能做到你想要的。
HTML
<input type="text" style="display:none" id="txtField1" />
<input type="button" id="btn1" value="Double Click Here" />
JS
function modify() {
//lets hide the button
document.getElementById("btn1").style.display= "none";
// show the text field
document.getElementById("txtField1").style.display = "block";
// now focus on the field
document.getElementById("txtField1").focus();
}
var el = document.getElementById("btn1");
// attaches event to the button
el.addEventListener("dblclick", modify, false);
根据评论顶部(问题下方)更新。
如果你不想隐藏按钮并使其值为null。
替换
行document.getElementById("btn1").style.display= "none";
通过
document.getElementById("btn1").value= "";
答案 2 :(得分:0)
我和你有类似的问题,最后通过使用回调函数找到出路。 我的代码是:
<s:textfield
id="clientUnitNoId"
name="clientUnitNumber"
value="%{clientUnitNumber}"
size="20" maxlength="8"
onchange="validateClientUnit(this.value)" cssClass="inputTextField"/>
...
if ( !isValid){
Ext.MessageBox.alert('ERROR',
'The Client Unit# only allows Alphanumeric data ',
function(){
document.getElementById('clientUnitNoId').focus();
document.getElementById('clientUnitNoId').select();} );
return false;
}