2

何らかの理由で、onblurおよびonfocusプロパティが機能しません。私はそれらを正しく定義していますか?

var replyTxt = document.createElement("input");
    replyTxt.id="replyTxt";
    replyTxt.type="text";
    replyTxt.value="Write a reply";
    
    replyTxt.onfocus = function(){if(replyTxt.value==replyTxt.defaultValue) replyTxt.value='';};
    replyTxt.onblur= function(){if(replyTxt.value=='') replyTxt.value=replyTxt.defaultValue;};

"function(){if(replyTxt.value==replyTxt.defaultValue) replyTxt.value='';}"見積もりも入れてみました

4

5 に答える 5

2

イベントは機能します-したがって、ロジックに問題がある可能性があります...

if(replyTxt.value==replyTxt.defaultValue) replyTxt.value='';

replyTxt.defaultValueをどこに設定しますか?あなたの例では、あなたはそうしません-それで、ロジックは決して発火しません。これを試して...

var replyTxtDefaultText = "Write a reply";
var replyTxt = document.createElement("input");
    replyTxt.id="replyTxt";
    replyTxt.type="text";
    replyTxt.value=replyTxtDefaultText;

    replyTxt.onfocus = function(){if(replyTxt.value==replyTxtDefaultText) replyTxt.value='';};
    replyTxt.onblur= function(){if(replyTxt.value=='') replyTxt.value=replyTxtDefaultText;};
于 2010-12-20T07:49:19.633 に答える
1

ヒント:イベント関数でで置き換えreplyTxtてみてください。this

于 2010-12-20T07:50:41.143 に答える
0

試してみてくださいsetAttribute。関数の詳細については、このリンクを参照してください

var replyTxt = document.createElement("input");
replyTxt.setAttribute('onFocus', 'focusFunction()');

function focusFunction()
{
   if(replyTxt.value==replyTxtDefaultText) 
      replyTxt.value='';
}
于 2010-12-20T07:57:55.417 に答える
0

そして、それを何かに追加するようにしてください。

<form id="x">
</form>
<script>
window.onload=function() {
  var replyTxt = document.createElement("input");
  replyTxt.id="replyTxt";
  replyTxt.type="text";
  replyTxt.value=replyTxt.defaultValue="Write a reply";
  replyTxt.onfocus = function(){if(this.value==this.defaultValue) this.value='';};
  replyTxt.onblur= function(){if(this.value=='') this.value=this.defaultValue;};

  document.getElementById('x').appendChild(replyTxt);
}
</script>
于 2010-12-20T07:59:56.553 に答える
-1

実際、私は宿題と同じような問題に取り組んでいましたが、マウスをフィールドに置いたらすぐにフィールドをクリアする方が、そのままにしてからクリアするよりも、比較するよりも良いことがわかりました。

于 2014-11-11T22:43:46.190 に答える