簡體   English   中英

onFocus 和 onBlur

[英]onFocus and onBlur

出於某種原因, onbluronfocus屬性不起作用。 我對它們的定義正確嗎?

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='';}"放在引號中

事件有效 - 所以你的邏輯可能有問題......

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

只是一個提示:嘗試在您的事件函數中用this替換replyTxt

嘗試setAttribute 有關功能的更多信息,請查看此 鏈接

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

function focusFunction()
{
   if(replyTxt.value==replyTxtDefaultText) 
      replyTxt.value='';
}

並確保將其附加到某些內容上。

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

實際上,我正在研究與家庭作業類似的問題,我發現最好在鼠標落在場地上后立即清除場地,而不是在保持不變的情況下進行比較然后清除它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM