2014-02-28 122 views
5

沒有人知道如何使用jquery刪除輸入佔位符?使用jquery刪除輸入佔位符

我想要做的是,如果其中一個inputbox得到了一個值...所有的inputbox佔位符將被刪除....有誰知道該怎麼做?

<input type="text" name="name" placeholder="1.)"> 
<input type="text" name="age" placeholder="2.)"> 
<input type="text" name="address" placeholder="3.)"> 

回答

14

應該工作:

$(':input').removeAttr('placeholder'); 
0
$('input[name="name"]').removeProp('placeholder'); 
2

.removeAttr()

var txtbox = $('input[type="text"]'); 
txtbox.change(function() { 
    txtbox.removeAttr('placeholder'); 
}); 
2

獲取所有的投入,並附加一個change事件處理,事件處理程序中,從獲得的價值全部輸入,將這些值連接在一起,如果它們仍然沒有,則沒有輸入值具有長度,的輸入中的至少一個具有價值,並且可以刪除佔位符屬性:

var inputs = $('input[type="text"]'); 

inputs.on('change', function() { 
    if ($.map(inputs, function(el) { return el.value; }).join('').length) 
     inputs.removeAttr('placeholder'); 
}); 

FIDDLE

+0

他*可能*想要解釋一下:p – Archer

+1

@Archer - 就是這樣! – adeneo

+0

是的,這很好:) – Archer

0

您可以將佔位符更改爲空字符串上keyup

$("input[type=text]").keyup(function() { 
    $("input[type=text]").attr("placeholder","") 
}); 

JSFiddle demo

-1

嘗試:

if ($(input).val()) { 
$(input).attr("placeholder", "") 
} 
+0

'$(input)'不會選擇任何輸入,除非'input'是一個值爲input的字符串(或類似的),並且不能使用'val() '在一個集合上 - 只有單個對象。 – Archer

0

會是這樣的工作?未經測試,但應在第一次更改任何輸入時刪除佔位符屬性。

var inputs = $('input'); 

inputs.one('change', function(){ 
    inputs.removeAttr('placeholder'); 
}); 
0

我已經走了一步,萬一你也想要這個。此代碼將刪除所有文本輸入中的佔位符文本(如果其中任何文本有值),但如果您刪除了所有值,它將佔用佔位符文本。可能沒有必要,但有它...

var $inputs = $("input:text"); 

$inputs.on("change", function() { 
    if ($.map($inputs, function(el) { if (el.value) return o.value; }).length) { 
     $inputs.each(function() { 
      this._placeholder = this.placeholder; 
      $(this).removeAttr("placeholder"); 
     }); 
    } else { 
     $inputs.each(function() { 
      this.placeholder = this._placeholder; 
     }); 
    } 
}); 

jsfiddle example...

2

我不RECCOMEND刪除佔位

相反,做一個重點,這將在那一刻自動隱藏佔位符:

$(element).focus(); 
+0

這對我來說是正確的解決方案,因爲當文本從輸入中刪除時,佔位符將重新出現。您還可以將所有元素按順序聚焦,因此它也可以處理多個輸入。在removeAttr解決方案中,佔位符將保持移除狀態,直到它被再次明確地設置爲服飾。 – Jankapunkt