爲佔位符添加另一個input
元素可能會在form
驗證和提交期間創建問題。我用不同的方式解決了這個問題。
的HTML
<form id="test">
<input type="text" id="name" name="name" placeholder="Name" />
<input type="password" id="password" name="password" placeholder="Password" />
</form>
jQuery函數
function placeholder(form) {
form.wrapInner('<ul style="list-style: none; list-style-type:none; padding:0; margin: 0;">');
form.find('input[placeholder]').each(function (index, current) {
$(current).css('padding', 0).wrap('<li style="position: relative; list-style: none; list-style-type:none; padding:0; margin: 0;">');
var height = $(current).parent('li').height();
var $current = $(current),
$placeholder = $('<div class="placeholder">'+$current.attr('placeholder')+'</div>');
$placeholder.css({'color': '#AAA', 'position':'absolute', 'top': 0, 'left': 0, 'line-height': height+'px', 'margin': '0 0 0 5px', 'border': '0 none', 'outline': '0 none', 'padding': 0});
$placeholder.insertAfter($current);
$current.removeAttr('placeholder');
$placeholder.click(function(){
$current.focus()
});
$current.keypress(function(){
if($(this).val().length >= 0) {
$placeholder.hide();
}
});
$current.blur(function(){
if($(this).val().length == 0) {
$placeholder.show();
} else {
$placeholder.hide();
}
});
});
}
現在只是調用函數的形式。
placeholder($("#test"));
這將與佔位符,包括type="password"
在IE8,IE9,IE10,谷歌Chrome,火狐,Safari和Opera測試的所有類型的輸入領域的工作。
[佔位符.js](https://github.com/jamesallardice/Placeholders.js)可以在除IE8及以下版本之外的所有瀏覽器中使用'password'輸入類型正確運行(並且還可以改進當前解決方案,方法是不提交佔位符值表格)。您不能在IE8及以下版本中完成,而無需臨時創建新元素。 –
可能重複的http://stackoverflow.com/questions/6052544/showing-placeholder-text-for-password-field-in-ie –