标准兼容HTML5输入框提示信息的插件iHolder_v0.1.06.21.2014_预览版
由于版面限制,简单说下,详细的内容及在线预览、预览版压缩包,见这里
http://levi.cg.am/archives/3507
为什么说是标准兼容:
因为大多数placeholder插件是这样兼容的
点击输入框,提示信息消失;而离开输入框后,若文字为空,则展示提示信息
而这次我要实现的目的在于让IE6-9实现和chrome、firefox一样:
点击输入框后,提示信息不会立即消失,当敲下键盘按键的时候,提示信息消失;当删除文字内容为空的时候,展示提示信息
目前此插件为预览版,希望大家能够多多提意见,正式版,下周见
1. [代码][JavaScript]代码
;(function($) {
$(function() {
if ('placeholder' in document.createElement('input')) {
return this;
}
$(document).on('holder mousedown keydown keyup', 'input, textarea', function(e) {
var $this = $(e.target);
switch(e.type) {
case 'holder':
var tips = $this.attr('placeholder');
if (!tips.length) return false;
if (!$this.val().length) {
$this.val(tips).addClass('placeholder').data({'holder': 1, 'tips': tips});
} else {
$this.data({'holder': 0, 'tips': tips});
}
break;
case 'mousedown':
if (!!$this.data('holder')) {
var $pwd = $this.data('pwd'),
$inp = $this.clone().insertAfter($this).data({
'holder': 1,
'tips': $this.data('tips')
}).focus();
$pwd && $inp.data('pwd', $pwd) && $pwd.data('tar', $inp);
$this.remove();
return false;
}
case 'keydown':
if (!!$this.data('holder')) {
var $pwd = $this.data('pwd');
if (!$pwd) {
$this.val('').removeClass('placeholder').data('holder', 0);
} else {
$pwd.show().focus();
$this.hide();
}
}
break;
case 'keyup':
if (!$this.val().length && $this.data('holder') != undefined) {
var tips = $this.data('tips'), $tar = $this.data('tar'), _rel = (!$tar && !!tips);
(function(par) {http://www.enterdesk.com/special/shouhui/
this.val(tips).addClass('placeholder').data('holder', 1).show().trigger('mousedown');
!par && $this.hide();手绘图片
}).call(_rel ? $this : $tar, _rel);
}
break;
}
});
$('[placeholder]:password').each(function() {
var $this = $(this), tips = $this.attr('placeholder'), $inp;
if (tips.length) {
$inp = $('<input>', {
'type': 'text',
'class': $this.attr('class'),
'style': $this.attr('style'),
'placeholder': tips,
'rel': 'pwdholder'
}).insertAfter($this).data('pwd', $this);
$this.data({'tar': $inp, 'holder': 0, 'tips': tips});
($this.val().length ? $inp : $this)['hide']();
}
});
$('input, textarea').not(':radio, :checkbox, :hidden, :button, :submit,
:file, :password').filter('[placeholder]').trigger('holder');
});
})(jQuery);
标准兼容HTML5输入框提示信息的插件iHolder_v0.1.06.21.2014_预览版的更多相关文章
- HTML5 CSS3 经典案例:无插件拖拽上传图片 (支持预览与批量) (二)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/31513065 上一篇已经实现了这个项目的整体的HTML和CSS: HTML5 C ...
- 发布 vscode 插件 Cnblogs Client For VSCode 预览版
为了方便大家使用 vscode 发布博文,我们做了一个小插件,今天发布预览版,欢迎大家试用并反馈问题与建议. 插件的英文名称是 Cnblogs Client For VSCode,简称是 vscode ...
- JQuery插件:图片上传本地预览插件,改进案例一则。
/* *名称:图片上传本地预览插件 v1.1 *作者:周祥 *时间:2013年11月26日 *介绍:基于JQUERY扩展,图片上传预览插件 目前兼容浏览器(IE 谷歌 火狐) 不支持safari *插 ...
- 基于HTML5和JSP实现的图片Ajax上传和预览
本文对如何实现使用Ajax提交"multipart/form"格式的表单数据,已经如何在图片上传之前,在浏览器上进行预览.使用的主要相关技术HTML5的FILE API,XMLHt ...
- Vim安装插件支持 MarkDown 语法、实时预览等
使用 markdown-preview.vim 插件可以实时通过浏览器预览 markdown 文件 使用该插件需要 vim 支持py2/py3 安装 使用 vim-plug: 在 .vimrc 或 i ...
- vue项目使用vue-photo-preview插件实现点击图片放大预览和移动
官方链接: http://npm.taobao.org/package/vue-photo-preview # 安装 npm install vue-photo-preview --save # 引入 ...
- js图片预览插件,不涉及上传
小小的几十行代码,很牛逼,很实用. 支持多个图片的预览,只要new多个对象就行了. html如下 <!-- zhouxiang www.zhou-xiang.com --> <!DO ...
- html5 图片上传,支持图片预览、压缩、及进度显示,兼容IE6+及标准浏览器
以前写过上传组件,见 打造 html5 文件上传组件,实现进度显示及拖拽上传,兼容IE6+及其它标准浏览器,对付一般的上传没有问题,不过如果是上传图片,且需要预览的话,就力有不逮了,趁着闲暇时间,给上 ...
- JS图片上传预览插件制作(兼容到IE6)
其实,图片预览功能非常地常见.很意外,之前遇到上传图片的时候都不需要预览,也一直没有去实现过.现在手上的项目又需要有图片预览功能,所以就动手做了一个小插件.在此分享一下思路. 一.实现图片预览的一些方 ...
随机推荐
- JAVA Eclipse创建的Android程序如何不显示标题栏
在manifest.xml文件的application节点添加下面一行即可 android:theme="@android:style/Theme.NoTitleBar" 如果要恢 ...
- 【AngularJS】【03】使用AngularJS进行开发
看不到PPT的请自行解决DNS污染问题.
- Vue 响应式属性
本文参考自:https://www.w3cplus.com/vue/vue-reactivity-and-pitfalls.html 1.概述 当创建一个Vue实例时,每个数据属性.组件属性等都是可以 ...
- 文件I/O操作为什么叫输入/出流
参考以下文档: http://blog.csdn.net/hguisu/article/details/7418161 我们关注的焦点是错误的,重点不在文件,我们关注的核心是数据流. 这种流可以是文本 ...
- JS创建表单提交备份
//保存 function saveFT() { var data = { createDate: GetDateStr(0), name: $("#txtName").val() ...
- 超出用省略号function()
//判断是否微信浏览器 function isWeiXin() { var ua = window.navigator.userAgent.toLowerCase(); if (ua.match(/M ...
- sql数据库log自动增长被取消
原因分析:数据库可分配空间为0 解决方法:增加数据库初始大小
- Leetcode Array 1 twoSum
Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...
- 笔记本中G-Sensor(加速计) M-Sensor 陀螺仪等传感器的区别
1.G-sensor重力传感器 作用 G-sensor中文是加速度传感器的意思(英文全称是Accelerometer-sensor),它能够感知到加速力的变化,加速力就是当物体在加速过程中作用在物体上 ...
- Angular 一些问题(跨域,后台接收不到参数)
1,跨域:跟前端没多大关系的,后台没设置头而已.这时候如果你们后端太菜你可以叫他加上每种语言 都不同,但是里面的呢荣是一样的.具体跨域可以跳转这里http://www.cnblogs.com/dojo ...