我有简单的例程向用户显示textarea中的提示。如果用户专注于textarea并且没有用户输入,则脚本会清除提示。如果在没有用户输入的情况下区域模糊,则该区域显示提示。
这似乎在IE和Chrome中运行良好,但firefox 3.6似乎每次都不起作用。
单击textarea进行聚焦,textarea清除文本
不要键入任何内容并单击外部以使textarea不聚焦,提示将显示。
再次单击textarea进行对焦,但文本不会消失。
点击外部以取消聚焦
再次单击textarea进行聚焦,这次文本区域将清除文本。
为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>
答案 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>