我有简单的2文字字段。一个是普通文本,另一个是我用于datepicker。我想清除占位符onfocus
并再次显示onblur
这是我正在使用的代码:
$('input,textarea').focus(function(){
$(this).data('placeholder',$(this).attr('placeholder'))
console.log($(this).data('placeholder'));
$(this).attr('placeholder','');
});
$('input,textarea').blur(function(){
console.log("adding "+$(this).data('placeholder'));
$(this).attr('placeholder',$(this).data('placeholder'));
});
对于普通文本,它的工作正常但是对于datepicker文本字段占位符不会在模糊后出现。是否有任何解决方案,以便 datepicker文本字段可以表现得像简单的文本字段?
尝试使用DEMO
答案 0 :(得分:1)
由于日期选择器而触发了两个焦点事件。它第二次触发它就摆脱了属性占位符。因此,只需在存储.data()之前检查属性。像这样的东西应该这样做
$('input,textarea').focus(function () {
if ($(this).prop('placeholder')) {
$(this).data('placeholder', $(this).prop('placeholder'))
$(this).prop('placeholder', '');
}
});
$('input,textarea').blur(function () {
if (!$(this).prop('placeholder')) {
$(this).prop('placeholder', $(this).data('placeholder'));
}
});
答案 1 :(得分:0)
您可以为日期选择器添加例外,以便不会清除占位符:
$('input:not(#thedate),textarea:not(#thedate)').focus(function(){