Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как заполнить textarea только если он пустой? (https://javascript.ru/forum/jquery/67304-kak-zapolnit-textarea-tolko-esli-pustojj.html)

Oleg0 09.02.2017 19:59

Как заполнить textarea только если он пустой?
 
Привет всем!
Задам наверное очень глупый вопрос, поскольку я полный 0 к java.
У меня есть поле
<textarea cols="60" rows="15" name="comment" id="edit-comment"  class="form-textarea"></textarea>


И я хочу вставить в него текст-подсказку, типа "Введите тут комментарий."
Нашел тут https://jsfiddle.net/h5n7derg/ хороший скрипт. Написал так:

<script type="text/javascript">
(function($){
	$(function(){
  	var comment = $('#edit-comment');
   	var message = 'Введите тут комментарий.';
   	if (comment.val('')) {
  	comment.val(message);
  	}
    comment.one('focus', function(){comment.val('')});
  });
})(jQuery);
</script>


Всё чудесно работает, но, если при вводе комментария пользователь допустит какую-нибудь ошибку, типа не правильно введёт капчу и страница перезагрузится, то если раньше сохранялся текст комментария, то теперь введённый комментарий затирается текстом из скрипта (при этом, если посмотреть html-код страницы, то введённый текст есть в поле).

Как сделать так, чтобы скрипт проверял, заполнено ли поле, и если нет, то вставлял туда свой текст.

Порывшись в интернете я сделал так:

<script type="text/javascript">
if ($('#edit-comment').val('')) {
(function($){
	$(function(){
  	var comment = $('#edit-comment');
   	var message = '<?php print t('commm'); ?>';
   	if (comment.val('')) {
  	comment.val(message);
  	}
    comment.one('focus', function(){comment.val('')});
  });

})(jQuery);
};
</script>


Но, не работает.
Пожалуйста, напишите, как правильно это сделать.

Oleg0 09.02.2017 20:10

Вот, вроде так заработало:


<script type="text/javascript">
if ($('#edit-comment').val() =='') {
(function($){
	$(function(){
  	var comment = $('#edit-comment');
   	var message = '<?php print t('commm'); ?>';
   	if (comment.val('')) {
  	comment.val(message);
  	}
    comment.one('focus', function(){comment.val('')});
  });
  
})(jQuery);
}
</script>


Но, буду признателен, если проверите. Вдруг я что-то не учёл тут.

рони 09.02.2017 20:34

Oleg0,
<textarea cols="60" rows="15" name="comment" id="edit-comment"  class="form-textarea" placeholder="Введите тут комментарий"></textarea>

Oleg0 09.02.2017 23:22

С placeholder, к сожалению, не получилось у меня сделать. Эта форма комментариев движком генерируется, и придется копаться в движке.

рони 09.02.2017 23:34

Oleg0,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
$('#edit-comment').attr({'placeholder':'Введите тут комментарий'});
});
  </script>
</head>

<body>
<textarea cols="60" rows="15" name="comment" id="edit-comment"  class="form-textarea" ></textarea>

</body>
</html>

Oleg0 10.02.2017 09:45

рони, Да, спасибо, так вроде лучше!


Часовой пояс GMT +3, время: 01:51.