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