2

我的代码没有运行,我希望在您单击另一个时清除该值

我究竟做错了什么?

http://jsfiddle.net/AL2vS/

var placeholderText = $('input').val();

$(placeholderText).focus(function() {
    $(this).attr('value', "");
});
$(placeholderText).blur(function() {
    $(this).attr('value', phTextVal);
});​
4

6 回答 6

4

您使用 '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'));
    };
});​
于 2012-04-19T20:36:29.807 回答
0

你的意思是这样吗?

http://jsfiddle.net/AL2vS/1/

于 2012-04-19T20:37:27.190 回答
0

这至少可以删除文本:

var placeholderText = $('input');

placeholderText.focus(function() {
    $(this).attr('value', "");
});
placeholderText.blur(function() {
    $(this).attr('value', phTextVal);
});​

您还可以查看 HTML5占位符参数

于 2012-04-19T20:37:58.767 回答
0

我想更好的方法是:

var placeholderText = $('input');

$(placeholderText).focus(function() {
    phTextVal = $(this).val();
    $(this).val("");
}).blur(function() {
    $(this).val(phTextVal);
});​
于 2012-04-19T20:39:37.213 回答
0

看看这个,

$('input').focus(function() {
    placeholderText = $('input').val();
    $(this).val("");
});

$('input').blur(function() {
    $(this).val(placeholderText);
});​

http://jsfiddle.net/AL2vS/8/

您仍然需要对输入的数据做一些事情。

于 2012-04-19T20:41:10.850 回答
0

使用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();
于 2012-04-19T21:10:01.653 回答