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

标签 javascript firefox textarea

我有简单的例程来在文本区域中向用户显示提示。如果用户将注意力集中在文本区域并且没有用户输入,则脚本会清除提示。如果该区域在没有用户输入的情况下变得模糊,则该区域会显示提示。

这似乎在 IE 和 Chrome 中工作正常,但在 Firefox 3.6 中似乎并非每次都能工作。

点击文本区域聚焦,文本区域清除文本

不要输入任何内容并单击外部以取消文本区域的焦点,将会显示提示。

再次单击文本区域即可聚焦,但文本不会消失。

点击外部即可取消焦点

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

有任何提示或见解可以纠正 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>

最佳答案

您可以使用正则表达式来测试该值是否不仅仅是空格。您还可以根据默认值进行测试,看看是否输入了任何内容。这样您的脚本就独立于文本区域的值。

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

关于javascript/jquery - firefox textarea 似乎没有注册值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7706414/

相关文章:

javascript - JQuery 从 tr 空格问题中获取 th 或 td 文本

javascript - 导航滚动和点击 anchor 标签

javascript - 从两个数组中删除重复值

javascript - YouTube API 似乎未在 Firefox 中加载,IFrame 已加载,但 onPlayerReady 事件从未触发?

firefox - 将歌曲添加到 FireFoxOS 模拟器

javascript - 调整输入文本区域的大小

javascript - Gulp Vinyl-ftp 无法上传较新且不同大小的文件

javascript - html 下拉菜单在 firefox 中不起作用,在旧版本的 IE 中一切都是错误的

textarea - 有没有办法动态改变 Flutter TextField 的 maxLines?

php - 从文本区域获取每一行