javascript / jquery - firefox textarea, похоже, не регистрирует значение - PullRequest
0 голосов
/ 10 октября 2011

У меня есть простая рутина, чтобы показывать пользователям подсказки в текстовой области. Если пользователь фокусируется на текстовой области и пользователь не вводит, скрипт очищает подсказки. Если область размыта без ввода пользователя, область показывает подсказки.

Кажется, что это нормально работает в IE и Chrome, но Firefox 3.6, кажется, не работает каждый раз.

Щелкните по текстовой области, чтобы сфокусироваться, текстовая область очистит текст

Не вводите ничего и нажимайте снаружи, чтобы расфокусировать текстовую область, появится подсказка.

Нажмите текстовую область еще раз, чтобы сфокусироваться, но текст не исчезнет.

Нажмите, чтобы расфокусировать

Нажмите текстовую область еще раз, чтобы сфокусироваться, на этот раз текстовая область очистит текст.

Любой совет или понимание, чтобы исправить это поведение для Firefox 3.6?

JSFiddle link

ТИА

<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 Ответ

3 голосов
/ 10 октября 2011

Вы можете использовать регулярное выражение, чтобы проверить, что значение является чем-то иным, чем просто пробелом. Вы также можете проверить значение по умолчанию, чтобы увидеть, есть ли что-нибудь введенное beeen. Таким образом, ваш скрипт не зависит от значения текстовой области.

<textarea onfocus="
  if (this.value == this.defaultValue) 
    this.value = '';
"
onblur="if (/^\s*$/.test(this.value))
  this.value = this.defaultValue
">Enter text</textarea>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...