input標籤placeholder
1.input裡面的placeholder屬性,在pc端用的特別好,但是萬惡的ie8,placeholder竟然不支援。於是找到一種方法解決在ie8中placeholder無效的事
$(function() {
// 如果不支援placeholder,用jQuery來完成
if(!isSupportPlaceholder()) {
// 遍歷所有input物件, 除了密碼框
$(`input`).not("input[type=`password`]").each(
function() {
var self = $(this);
var val = self.attr("placeholder");
input(self, val);
}
);
/**
* 對password框的特殊處理
* 1.建立一個text框
* 2.獲取焦點和失去焦點的時候切換
*/
$(`input[type="password"]`).each(
function() {
var pwdField = $(this);
var pwdVal = pwdField.attr(`placeholder`);
var pwdId = pwdField.attr(`id`);
// 重新命名該input的id為原id後跟1
pwdField.after(`<input id="` + pwdId +`1" type="text" value=`+pwdVal+` autocomplete="off" />`);
var pwdPlaceholder = $(`#` + pwdId + `1`);
pwdPlaceholder.show();
pwdField.hide();
pwdPlaceholder.focus(function(){
pwdPlaceholder.hide();
pwdField.show();
pwdField.focus();
});
pwdField.blur(function(){
if(pwdField.val() == ``) {
pwdPlaceholder.show();
pwdField.hide();
}
});
}
);
}
});
// 判斷瀏覽器是否支援placeholder屬性
function isSupportPlaceholder() {
var input = document.createElement(`input`);
return `placeholder` in input;
}
// jQuery替換placeholder的處理
function input(obj, val) {
var $input = obj;
var val = val;
$input.attr({value:val});
$input.focus(function() {
if ($input.val() == val) {
$(this).attr({value:""});
}
}).blur(function() {
if ($input.val() == "") {
$(this).attr({value:val});
}
});
}
注:本文借鑑https://www.cnblogs.com/2010m… 本文僅供個人學習使用