这次给大家带来文本框和密码框实现灰色预提示文字,文本框和密码框实现灰色预提示文字的注意事项有哪些,下面就是实战案例,一起来看一下。
很久之前写了这个插件,基于jquery实现的,主要用于ie下实现placeholder效果,可同时支持文本和密码输入框。
placeholder是html5新增的一个属性,当input设置了该属性后,该值的内容将作为灰色提示显示在文本框中,当文本框获得焦点时,提示文字消失。
实现代码如下:
(function($) {
var placeholderfriend = {
focus: function(s) {
s = $(s).hide().prev().show().focus();
var idvalue = s.attr(id);
if (idvalue) {
s.attr(id, idvalue.replace(placeholderfriend, ));
}
var clsvalue = s.attr(class);
if (clsvalue) {
s.attr(class, clsvalue.replace(placeholderfriend, ));
}
}
}
//判断是否支持placeholder
function isplaceholer() {
var input = document.createelement('input');
return placeholder in input;
}
//不支持的代码
if (!isplaceholer()) {
$(function() {
var form = $(this);
//遍历所有文本框,添加placeholder模拟事件
var elements = form.find(input[type='text'][placeholder]);
elements.each(function() {
var s = $(this);
var pvalue = s.attr(placeholder);
var svalue = s.val();
if (pvalue) {
if (svalue == '') {
s.val(pvalue);
}
}
});
elements.focus(function() {
var s = $(this);
var pvalue = s.attr(placeholder);
var svalue = s.val();
if (svalue && pvalue) {
if (svalue == pvalue) {
s.val('');
}
}
});
elements.blur(function() {
var s = $(this);
var pvalue = s.attr(placeholder);
var svalue = s.val();
if (!svalue) {
s.val(pvalue);
}
});
//遍历所有密码框,添加placeholder模拟事件
var elementspass = form.find(input[type='password'][placeholder]);
elementspass.each(function(i) {
var s = $(this);
var pvalue = s.attr(placeholder);
var svalue = s.val();
if (pvalue) {
if (svalue == '') {
//dom不支持type的修改,需要复制密码框属性,生成新的dom
var html = this.outerhtml || ;
html = html.replace(/\s*type=(['])?password\1/gi, type=text placeholderfriend)
.replace(/\s*(?:value|on[a-z]+|name)(=(['])?\s*\1)?/gi, )
.replace(/\s*placeholderfriend/, placeholderfriend value=' + pvalue
+ ' + onfocus='placeholderfriendfocus(this);' );
var idvalue = s.attr(id);
if (idvalue) {
s.attr(id, idvalue + placeholderfriend);
}
var clsvalue = s.attr(class);
if (clsvalue) {
s.attr(class, clsvalue + placeholderfriend);
}
s.hide();
s.after(html);
}
}
});
elementspass.blur(function() {
var s = $(this);
var svalue = s.val();
if (svalue == '') {
var idvalue = s.attr(id);
if (idvalue) {
s.attr(id, idvalue + placeholderfriend);
}
var clsvalue = s.attr(class);
if (clsvalue) {
s.attr(class, clsvalue + placeholderfriend);
}
s.hide().next().show();
}
});
});
}
window.placeholderfriendfocus = placeholderfriend.focus;
})(jquery);
<html>
<head>
<script src="jquery.js" type="text/javascript"></script>
<script src="placeholderfriend.js" type="text/javascript"></script>
</head>
<body>
<input placeholder="账号/手机号码" ><br>
<input placeholder="密码" type="password" >
</body>
</html>
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
jquery mobile初始化事件使用(案例详解)
设置多行文本框[textarea]自动生成高度
以上就是文本框和密码框实现灰色预提示文字的详细内容。