使用JQuery获取textarea的默认值,清除onfocus并在empty上恢复值

时间:2011-03-30 09:32:31

标签: javascript jquery forms

我有一些不起作用的JQuery,我需要一些帮助。我在我的网站上有一些表格,他们都有一个带有“.form-textarea”类的文本区域。我想要做的是使用JQuery获取textarea的默认值,清除焦点上的值并在textarea为空时恢复原始值。我意识到ID可能会更好但我需要一个泛型函数来影响这个特定类的所有textareas。

$(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 个答案:

答案 0 :(得分:1)

在这里,给它一个旋转,看看它是否成功。

<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" />

答案 1 :(得分:1)

这是我用于完全相同目的的旧方法。我相信这就是你要找的东西(使用Textareas): Live demo

这使用jQuery数据API。我还添加了一个额外的类,以便您可以很好地标记文本(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);
        }
    })
});

答案 2 :(得分:0)

我刚尝试从焦点功能中移除值“srcc”,它可以正常工作