簡體   English   中英

javascript / jquery-Firefox textarea似乎未注冊值

[英]javascript / jquery - firefox textarea does not seem to register value

我有一個簡單的例程可以向用戶顯示文本區域中的提示。 如果用戶專注於文本區域,並且沒有用戶輸入,則腳本將清除提示。 如果在沒有用戶輸入的情況下該區域模糊,則該區域將顯示提示。

這似乎在IE和chrome中可以正常工作,但是firefox 3.6似乎並非每次都能工作。

單擊文本區域以聚焦,該文本區域清除文本

不要鍵入任何內容,然后單擊外部以使文本區域失去焦點,提示將顯示。

再次單擊文本區域以聚焦,但文本不會消失。

在外面單擊以散焦

再次單擊文本區域以聚焦,這一次文本區域將清除文本。

有任何技巧或見解可以糾正針對Firefox 3.6的此行為?

JSFiddle鏈接

TIA

<html xmlns="http://www.w3.org/1999/xhtml">
<head>            
 <script type="text/javascript" src="../jquery-1.6.4.min.js"></script>
</head>
<body >
<div style="text-align:center">
   <textarea id="btext"  onfocus="clearOnFocus()" onblur="showtip()">
Enter text
</textarea><br>
</div>
 <!-- end page -->
<script language="javascript">

function clearOnFocus () {
  //alert ('test');

  var patt=/Enter text/g;
  var result=patt.test($('#btext').val());
  if (result) {
    $('#btext').val('');
  }
}//end of clear

function showtip () {
  var textinput = $('#btext').val();

  if (textinput == '') {

  var btips = 'Enter text';

  $('#btext').val(btips);
    }
}//end of showtip

</script>
 </body>
</html>

您可以使用正則表達式來測試該值是否只是空格。 您還可以針對默認值進行測試,以查看是否輸入了任何內容。 這樣,您的腳本便獨立於textarea的值。

<textarea onfocus="
  if (this.value == this.defaultValue) 
    this.value = '';
"
onblur="if (/^\s*$/.test(this.value))
  this.value = this.defaultValue
">Enter text</textarea>

暫無
暫無

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

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