使用焦点作为文本字段

时间:2013-02-13 09:05:13

标签: javascript focus

我有两个要素:

  1. 一个texfield元素,首先隐藏。
  2. 覆盖文本字段的按钮元素。
  3. 另一方面,我有一个名为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()不起作用......

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

    问候,丹尼尔

3 个答案:

答案 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;
        }