簡體   English   中英

如何清除文本輸入字段中的值?

[英]how do I clear the values in my text input fields?

我的代碼無法運行,當您單擊另一個時,我希望清除該值

我究竟做錯了什么?

http://jsfiddle.net/AL2vS/

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

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

您使用“ placeholderText”作為選擇器,不會選擇任何內容。 使用$('input').focus(...$('input').blur(...代替。

UPDATE

如果要存儲現有值,然后替換它,然后將其存儲為.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'));
    };
});​

你是這個意思嗎

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

這至少可以消除文本的工作:

var placeholderText = $('input');

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

您還可以查看HTML5 占位符param

我想更好的方法是:

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);
});​

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

您仍然需要對輸入的數據進行處理。

如何使用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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM