Использование JQuery для получения значения по умолчанию текстовой области, очистка onfocus и восстановление значения на пустом - PullRequest
0 голосов
/ 30 марта 2011

У меня есть JQuery, который не работает, и мне нужна небольшая помощь. У меня есть несколько форм на моем веб-сайте, и все они имеют текстовое поле с классом ".form-textarea". Я пытаюсь использовать JQuery, чтобы получить значение по умолчанию для текстовой области, очистить значение в фокусе и восстановить исходное значение, если текстовая область пуста. Я понимаю, что идентификатор, вероятно, был бы лучше, но мне нужна универсальная функция, чтобы воздействовать на все текстовые области с этим конкретным классом.

$(document).ready(function()
{
var def = $(".form-textarea")
$(".form-textarea").focus(function(srcc)
{
  if ($(this).val() == def)
    {
      $(this).removeClass("defaultTextActive");
      $(this).val("");
    }
});

$(".form-textarea").blur(function()
{
  if ($(this).val() == "")
    {
      $(this).addClass("defaultTextActive");
      $(this).val(def);
    }
});

$(".defaultText").blur();        
});

Ответы [ 3 ]

1 голос
/ 30 марта 2011

Это старый метод, который я использовал для той же цели.Я считаю, что это то, что вы ищете (использует Textareas): Live демо

Это использует API данных jQuery.Я также добавил дополнительный класс, чтобы вы могли красиво разметить ваш текст (disabled_text).Это метод общего назначения, поэтому все, что вам нужно сделать, это добавить класс suggest к вашему textarea / input, а скрипт сделает все остальное

<textarea class='suggest'>Some default value</textarea>
<textarea class='suggest'>Some default value2</textarea>
<textarea class='suggest'>Some default value3</textarea>
<input type='text' value ='me too' class='suggest'>

$('.suggest').each(function() {
        $this = $(this);
    if ($this.val() != '') {
        return;
    }
    $this.data('defaultval', $this.val());

    $this.addClass('disabled_text').focus(function() {

        if ($this.val() == $this.data('defaultval')) {
            $this.val('');

        }
        $this.removeClass('disabled_text');
    }).blur(function() {
        var oldVal = ($this.data('defaultval')) ? $this.data('defaultval') : '';
        if ($this.val() == '' && oldVal != '') {
            $this.addClass('disabled_text').val(oldVal);
        }
    })
});
1 голос
/ 30 марта 2011

Вот, дайте этому водовороту и посмотрите, добьется ли он цели.

<script>
$(document).ready(function(){

    $default = "defaultText";

    $(".form-textarea").focus(function(){
        if( $(this).val() == $default ){
            $(this).removeClass("defaultTextActive");
            $(this).val("");
        }
    });

    $(".form-textarea").blur(function(){
        if( $(this).val() == "" ){
            $(this).addClass("defaultTextActive");
            $(this).val($default);
        }
    });
});
</script>

<input class="form-textarea" type="text" value="defaultText" />
<input class="form-textarea" type="text" value="defaultText" />
0 голосов
/ 30 марта 2011

Я только что попытался удалить значение "srcc" из функции фокуса, и оно отлично работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...