javascript / jquery - firefox textarea似乎没有注册值

时间:2011-10-09 20:38:50

标签: javascript firefox textarea

我有简单的例程向用户显示textarea中的提示。如果用户专注于textarea并且没有用户输入,则脚本会清除提示。如果在没有用户输入的情况下区域模糊,则该区域显示提示。

这似乎在IE和Chrome中运行良好,但firefox 3.6似乎每次都不起作用。

单击textarea进行聚焦,textarea清除文本

不要键入任何内容并单击外部以使textarea不聚焦,提示将显示。

再次单击textarea进行对焦,但文本不会消失。

点击外部以取消聚焦

再次单击textarea进行聚焦,这次文本区域将清除文本。

为firefox 3.6纠正此行为的任何提示或见解?

JSFiddle link

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>

1 个答案:

答案 0 :(得分:3)

您可以使用正则表达式来测试该值是否只是空格。您还可以测试默认值以查看是否输入了任何内容。这样你的脚本就独立于textarea的值。

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