版权声明:本文为博主落尘曦的原创文章。如转载请注明链接 【 落尘曦的博客:http://blog.csdn.net/qq_23994787 】感谢配合! https://blog.csdn.net/qq_23994787/article/details/85627781
实现方式1:将placeholder的值作为内容写入控件,并添加控件事件来进行模拟。
;(function(){
if( !('placeholder' in document.createElement('input')) ){
// 匹配 除type=password以外所有input、textarea
$('input[placeholder][type!=password],textarea[placeholder]').each(function(){
var self = $(this),
text= self.attr('placeholder');
// 如果内容为空,则写入
if(self.val()===""){
self.val(text).addClass('placeholder');
}
// 控件激活,清空placeholder
self.focus(function(){
if(self.val()===text){
self.val("").removeClass('placeholder');
}
// 控件失去焦点,清空placeholder
}).blur(function(){
if(self.val()===""){
self.val(text).addClass('placeholder');
}
});
});
}
})();
实现方式2 :利用一个type为text的input作为显示,得到焦点后隐藏
//添加显示input样式
if( !('placeholder' in document.createElement('input')) ){
// 匹配 除type=password以外所有input、textarea
$('input[placeholder][type!=password]').each(function(){
var self = $(this);
var text = self.attr('placeholder');
self.val(text).css({
"color": "#a6a6a6"
});
});
}
//创建password的placeholder效果
function createPlaceholder(selector){
$("#"+selector+"Tips").focus(function() {
$(this).hide().siblings("#"+selector).show().focus();
});
$("#"+selector).blur(function() {
if ($(this).val() == '') {
$(this).hide().siblings("#"+selector+"Tips").show();
}
})
}
createPlaceholder("oldPassWord");
createPlaceholder("newPassWord");
createPlaceholder("confirmPassWord");
实现方式3:插件方式 用法:$(selectot).placeholder();
;(function(f, h, $) {
var a = 'placeholder' in h.createElement('input'),
d = 'placeholder' in h.createElement('textarea'),
i = $.fn,
c = $.valHooks,
k, j;
if (a && d) {
j = i.placeholder = function() {
return this
};
j.input = j.textarea = true
} else {
j = i.placeholder = function() {
var l = this;
l.filter((a ? 'textarea' : ':input') + '[placeholder]').not('.placeholder').bind({
'focus.placeholder': b,
'blur.placeholder': e
}).data('placeholder-enabled', true).trigger('blur.placeholder');
return l
};
j.input = a;
j.textarea = d;
k = {
get: function(m) {
var l = $(m);
return l.data('placeholder-enabled') && l.hasClass('placeholder') ? '' : m.value
},
set: function(m, n) {
var l = $(m);
if (!l.data('placeholder-enabled')) {
return m.value = n
}
if (n == '') {
m.value = n;
if (m != h.activeElement) {
e.call(m)
}
} else {
if (l.hasClass('placeholder')) {
b.call(m, true, n) || (m.value = n)
} else {
m.value = n
}
}
return l
}
};
a || (c.input = k);
d || (c.textarea = k);
$(function() {
$(h).delegate('form', 'submit.placeholder', function() {
var l = $('.placeholder', this).each(b);
setTimeout(function() {
l.each(e)
}, 10)
})
});
$(f).bind('beforeunload.placeholder', function() {
$('.placeholder').each(function() {
this.value = ''
})
})
}
function g(m) {
var l = {}, n = /^jQuery\d+$/;
$.each(m.attributes, function(p, o) {
if (o.specified && !n.test(o.name)) {
l[o.name] = o.value
}
});
return l
}
function b(m, n) {
var l = this,
o = $(l);
if (l.value == o.attr('placeholder') && o.hasClass('placeholder')) {
if (o.data('placeholder-password')) {
o = o.hide().next().show().attr('id', o.removeAttr('id').data('placeholder-id'));
if (m === true) {
return o[0].value = n
}
o.focus()
} else {
l.value = '';
o.removeClass('placeholder');
l == h.activeElement && l.select()
}
}
}
function e() {
var q, l = this,
p = $(l),
m = p,
o = this.id;
if (l.value == '') {
if (l.type == 'password') {
if (!p.data('placeholder-textinput')) {
try {
q = p.clone().attr({
type: 'text'
})
} catch (n) {
q = $('<input>').attr($.extend(g(this), {
type: 'text'
}))
}
q.removeAttr('name').data({
'placeholder-password': true,
'placeholder-id': o
}).bind('focus.placeholder', b);
p.data({
'placeholder-textinput': q,
'placeholder-id': o
}).before(q)
}
p = p.removeAttr('id').hide().prev().attr('id', o).show()
}
p.addClass('placeholder');
p[0].value = p.attr('placeholder')
} else {
p.removeClass('placeholder')
}
}
}(this, document, jQuery));