我的代码没有运行,我希望在您单击另一个时清除该值
我究竟做错了什么?
var placeholderText = $('input').val();
$(placeholderText).focus(function() {
$(this).attr('value', "");
});
$(placeholderText).blur(function() {
$(this).attr('value', phTextVal);
});
我的代码没有运行,我希望在您单击另一个时清除该值
我究竟做错了什么?
var placeholderText = $('input').val();
$(placeholderText).focus(function() {
$(this).attr('value', "");
});
$(placeholderText).blur(function() {
$(this).attr('value', phTextVal);
});
您使用 'placeholderText' 作为选择器,它不会选择任何东西。使用$('input').focus(...
and$('input').blur(...
代替。
更新
如果要存储现有值,然后替换它,则将其存储为.data()
元素<input>
本身:
$('input').focus(function() {
$this = $(this);
$this.data('oldval',$this.val());
$this.val('');
});
$('input').blur(function() {
$this = $(this);
$this.val($this.data('oldval'));
});
http://jsfiddle.net/mblase75/AL2vS/12/
或者可能:
$('input').blur(function() {
$this = $(this);
if ($this.val().length==0) { // only if the field is blank
$this.val($this.data('oldval'));
};
});
你的意思是这样吗?
这至少可以删除文本:
var placeholderText = $('input');
placeholderText.focus(function() {
$(this).attr('value', "");
});
placeholderText.blur(function() {
$(this).attr('value', phTextVal);
});
您还可以查看 HTML5占位符参数。
我想更好的方法是:
var placeholderText = $('input');
$(placeholderText).focus(function() {
phTextVal = $(this).val();
$(this).val("");
}).blur(function() {
$(this).val(phTextVal);
});
看看这个,
$('input').focus(function() {
placeholderText = $('input').val();
$(this).val("");
});
$('input').blur(function() {
$(this).val(placeholderText);
});
您仍然需要对输入的数据做一些事情。
使用object.defaultValue属性怎么样?
功能:
$.fn.smartInput=function(){
return this.each(function(i,o){
$(o).focus(function(){ if(this.value==this.defaultValue) this.value='';})
.blur(function(){ this.value=(this.value=='')?this.defaultValue:this.value;});
});
}
用法:
$('input').smartInput();