jQuery恢复文本框的默认值

时间:2011-04-19 01:52:10

标签: jquery

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

7 个答案:

答案 0 :(得分:6)

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

如果页面回发,我会在加载时检测defaultValue使用用户数据作为默认值。

答案 1 :(得分:5)

我的回答类似于Phil,您将内容存储在对象的data()中。有点像这样(demo):

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

答案 2 :(得分:1)

我写了jQuery plugin来做到这一点。

答案 3 :(得分:1)

假设您不想使用占位符或其他HTML5-y优点,请尝试以下操作:

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

答案 4 :(得分: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);
        }
    });

答案 5 :(得分:0)

我是这样做的;

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

答案 6 :(得分: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")) ;
            }
        });
    });

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

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