我有简单的例程来在文本区域中向用户显示提示。如果用户将注意力集中在文本区域并且没有用户输入,则脚本会清除提示。如果该区域在没有用户输入的情况下变得模糊,则该区域会显示提示。
这似乎在 IE 和 Chrome 中工作正常,但在 Firefox 3.6 中似乎并非每次都能工作。
点击文本区域聚焦,文本区域清除文本
不要输入任何内容并单击外部以取消文本区域的焦点,将会显示提示。
再次单击文本区域即可聚焦,但文本不会消失。
点击外部即可取消焦点
再次单击文本区域进行聚焦,这次文本区域将清除文本。
有任何提示或见解可以纠正 Firefox 3.6 的此行为吗?
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/