我的代码可以执行单击文本框时,它会清空文本框。如果在文本框中没有输入任何内容,如何使用jQuery恢复默认值?
答案 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
}