0

我有两个要素:

  1. 一个 texfield 元素,首先隐藏。
  2. 和一个覆盖文本字段的按钮元素。

另一方面,我有一个名为 onDoubleClick 的事件,当在按钮中双击时调用一个函数。此功能隐藏按钮并显示文本字段,但我需要此时文本字段可编辑(如第三次单击)

我读到了 focus() 但它对我没有帮助...... 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 是一个表单,input var 是输入字段,我得到它很好,我正在使用 chrome 检查器,使用调试器,但是 focus() 不起作用...

解决方案

这是我的错误......这段代码是一个大项目的一部分,并且焦点工作正常,但由于线程问题没有做任何事情......我检查并解决了它,现在它就像一个魅力:-) 谢谢大家

问候,丹尼尔

4

3 回答 3

2

这可能是时间问题吗?

请试试这个:

    onDoubleClick(function(){
       setTimeout(function(){
         button.focus();
       },50);
    });
于 2013-02-13T09:10:12.320 回答
1

检查这个小提琴。我相信它会做你想要的。

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);

根据顶部的评论更新(下面的问题)。

如果您不想隐藏按钮并使其值为空。

换行

document.getElementById("btn1").style.display= "none";

经过

document.getElementById("btn1").value= "";
于 2013-02-13T09:50:07.753 回答
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;
        }
于 2014-03-21T18:32:36.870 回答