2011-04-19 95 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 
}