2012-07-11 69 views
2

我想通過jQuery將value屬性更改爲佔位符。所以結果會是這樣的將值更改爲佔位符(輸入字段)

原始

<input type="text" value="Enter name" /> 

我想改變上面

<input type="text" placeholder="Enter name" /> 

我只找到了改變的「」而不是實際工作中的文字解決方案那些之前的文本。所以replaceWith,replaceAll does not似乎工作。

有人有一個想法如何解決這個問題?

回答

12

您可以使用

.removeAttr('value')刪除屬性

例子:

$('input[type=text]').removeAttr('value'); 

,並添加新的屬性與

.attr('placeholder','Enter name')

實施例:

$('input[type=text]').attr('placeholder','Enter name'); 

如所建議的通過rcdmk

您可能做到這一點鏈的方法:

$('input[type="text"]').each(function() { 
     var $this = $(this); 
     $this.attr("placeholder", $this.attr("value")).removeAttr("value"); 
    }); 
+4

我會添加一個答案,但這很適合。每一個函數(){var $ this = $(this); $ this.attr(「placeholder()); 「,$ this.attr(」value「))。removeAttr(」value「);});' – rcdmk 2012-07-11 12:10:00

+0

@rcdmk:謝謝,並加入我的答案。 – 2012-07-11 12:17:33

+1

謝謝,像一個魅力工作! – JohnSmith 2012-07-11 12:24:02

0
<input type="text" id="searchInput" value="enter text..."> 

var plcehldr = "enter text...";  
$("#searchInput").focusin(function() { 
    $(this).removeAttr("value"); 
}); 

$("#searchInput").focusout(function() { 
    $(this).attr("value",plcehldr); 
}); 

http://jsfiddle.net/ipsjolly/2qutf/14/

相關問題