0

私は2つの要素を持っています:

  1. 最初に非表示の texfield 要素。
  2. そして、テキストフィールドを覆うボタン要素。

一方、ボタンでダブルクリックが行われたときに関数を呼び出す onDoubleClick というイベントが 1 つあります。この関数はボタンを非表示にしてテキストフィールドを表示しますが、この時点でテキストフィールドを編集できるようにする必要があります (3 回目のクリックなど)。

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

上のコメントに従って更新されました(質問の下)。

ボタンを非表示にして値をnullにしたくない場合。

ラインを交換する

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

document.getElementById("btn1").value= "";
于 2013-02-13T09:50:07.753 に答える