2011-04-19 92 views
2

我的代码可以做当点击文本框,它清空文本框。如果没有在文本框中输入任何内容,如何使用jQuery恢复默认值?jQuery恢复文本框默认值

+4

如果它是您想要的占位符文本,您可以改为将''元素的'placeholder'属性设置为您需要的任何占位符。这是最干净的解决方案。 – Ryan 2011-04-19 01:53:11

+0

@minitech,我想使用占位符,但它需要添加回退代码兼容性。不幸的是,我只找到mootools或其他框架的解决方案,而不是jQuery。所以我最终选择了下面的一个快速解决方案。 – Stan 2011-04-19 09:19:28

回答

6
$('input').focus(
    function() 
    { 
     if ($(this).val() == defaultValue) 
     { 
     $(this).val(''); 
     } 
    }) 
    .blur(function() 
    { 
     if ($(this).val() == '') 
     { 
     $(this).val(defaultValue); 
     } 
    }); 

我将检测负载的默认值是使用用户的数据为默认值,如果该页面是一个回什么。

+2

我使用$(this).attr('defaultValue')作为defaultValue。 – Stan 2011-04-19 09:22:54

1

假设你不想使用占位符或其他HTML5-Y善良,请尝试以下操作:您存储在data()内容为对象

$('#myTextbox').click(function(){ 
    $(this).data('saved-text', $(this).val()); 
    // Now you can clear your text. 
}).focusout(function(){ 
    $(this).val($(this).data('saved-text')); 
}); 
5

我的答案是类似菲尔的。有点像这个(demo):

$('textarea') 
    .bind('focusin', function(e){ 
    $(this) 
    .data('content', $(this).val()) 
    .val(''); 
    }) 
    .bind('focusout', function(e){ 
    if ($(this).val() === ''){ 
     $(this).val($(this).data('content')); 
    } 
    }); 
+0

这就是我正在寻找的 – AdRock 2013-10-07 18:39:44

0

我这样做;

$('#textbox').focus(function(){ 
    if($(this).val() == 'Enter some text..') 
     $(this).val(''); 
}).blur(function(){ 
    if($(this).val() == '') 
     $(this).val('Enter some text..'); 
}); 
1

您可以使用这样的事情:

var defaultText = 'this is my default text'; 
    var controlObject = $('#idControl'); 
    controlObject.val(defaultText); 

    controlObject.focusin(function (e) { 
     var controlSelected = $(e.target); 
     if (controlSelected.val() == defaultText) { 
      controlSelected.val(''); 
     } 
    }).focusout(function (e) { 
     var controlSelected = $(e.target); 
     if (controlSelected.val() == '') { 
      controlSelected.val(defaultText); 
     } 
    }); 
0

您可以使用下面的代码为文本框的默认值。它也适用于Textareas。 您只需将类“default-value”应用于要附加默认值功能的所有文本字段和textareas。

$('.default-value').each(function() { 
     $(this).data("default_value",$(this).val()); 
     $(this).focus(function() { 
      if($(this).val() == $(this).data("default_value")) { 
       $(this).val(""); 
      } 
     }); 
     $(this).blur(function() { 
      if($(this).val() == '') { 
       $(this).val($(this).data("default_value")) ; 
      } 
     }); 
    }); 

这段代码的另一个benifit是,当您提交表单,您可以检查该字段包含原始默认值与否。

if($(elem).val()==$(elem).data("default_value")) 
{ 
//Contains default value 
} 
else 
{ 
//Contains new value 
}