很久之前写了这个插件,基于jQuery实现的,主要用于IE下实现placeholder效果,可同时支持文本和密码输入框。
placeholder是HTML5新增的一个属性,当input设置了该属性后,该值的内容将作为灰色提示显示在文本框中,当文本框获得焦点时,提示文字消失。
下载地址:http://download.csdn.net/detail/cwqcwk1/5676563(含demo)
实现代码如下:
(function($) {
/**
* 没有开花的树
* http://blog.csdn.net/mycwq/
* 2012/11/28 15:12
*/
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>
分享到:
相关推荐
《IE下支持文本框和密码框placeholder效果的JQuery插件解析》 在现代Web开发中,HTML5的引入带来了许多便利的新特性,其中之一便是`placeholder`属性。这个属性允许开发者为输入框(input)设置一个提示信息,通常以...
比如,它并不适用于所有浏览器,老版本的IE浏览器可能不支持。在这种情况下,可以借助JavaScript库或jQuery插件来实现兼容性处理。同时,`placeholder`仅提供静态提示,如果需要更复杂的交互,如动态提示或错误信息...
但在一些旧版浏览器中,如IE8及以下版本,`placeholder`属性并不被支持。因此,我们可以通过JavaScript来模拟`placeholder`的行为,以兼容那些不支持它的浏览器。 首先,我们来理解JavaScript如何实现密码框提示...
目前,可以通过CSS伪元素及现代浏览器的兼容性前缀来实现类似效果,如使用`:before`和`:after`伪元素,而现代浏览器如IE10及以上版本已经开始支持placeholder属性。 综上所述,本文向我们展示了一种通过jQuery来...
表单验证控件 支持文本框,密码框,下拉框,单选框,多选框,文本域以及对象等等的验证,包括必填,对比,正则等等验证 使用方法: 进行验证: $("#form").TsForm(); 清空表单: $("#form").TsFormReset(); 属性: minlength:...
10. Font:指定文本的字体和字号,影响文本框内文字的视觉效果。 11. Min Font Size:设置文本框可显示的最小字体大小,当文本框尺寸缩小时,文本不会小于这个设定值。 12. Adjust To Fit:如果选中,当文本框尺寸...
1、Microsoft Internet Explorer (IE) 2、Mozilla Firefox 3、Google Chrome 4、Apple Safari 5、Opera Opera(欧朋) 3、主要技术 1、HTML 2、CSS 3、Javascript 2、HTML入门(重点) 1、什么是HTML Hyper ...
102 <br>0162 如何实现C#中用键完成TAB的功能 102 <br>0163 如何限制文本框密码输入长度 102 <br>0164 数据输入为空提示 103 <br>0165 如何设置文本框光标到末尾 103 <br>0166 输入法调整...
<input type="password" placeholder="密码" /> 男 女 记住我 提交" /> 重置" /> ``` #### 二、CSS简介 CSS(层叠样式表,Cascading Style Sheets)是一种用于定义HTML文档外观和布局的语言。它使得...
在软件开发过程中,良好的命名规范能够显著提升代码的可读性和维护性。本篇文章将基于提供的部分C#控件命名规范进行详细解析,帮助开发者理解并应用这些规则。 #### 二、控件命名规范 **1. 控件命名规则** - **...