IE8不支持属性placeholder

 $(function () {
            // -- Constants --
            var PLACE_HOLDER_COLOR = "rgb(169,169,169)"; // "darkGrey" does not work in IE6
            var PLACE_HOLDER_DATA_NAME = "original-font-color";

            // -- Util Methods --
            var getContent = function (element) {
                return $(element).val();
            }

            var setContent = function (element, content) {
                $(element).val(content);
            }

            var getPlaceholder = function (element) {
                return $(element).attr("placeholder");
            }

            var isContentEmpty = function (element) {
                var content = getContent(element);
                return (content.length === 0) || content == getPlaceholder(element);
            }

            var setPlaceholderStyle = function (element) {
                $(element).data(PLACE_HOLDER_DATA_NAME, $(element).css("color"));
                $(element).css("color", PLACE_HOLDER_COLOR);
            }

            var clearPlaceholderStyle = function (element) {
                $(element).css("color", $(element).data(PLACE_HOLDER_DATA_NAME));
                $(element).removeData(PLACE_HOLDER_DATA_NAME);
            }

            var showPlaceholder = function (element) {
                setContent(element, getPlaceholder(element));
                setPlaceholderStyle(element);
            }

            var hidePlaceholder = function (element) {
                if ($(element).data(PLACE_HOLDER_DATA_NAME)) {
                    setContent(element, "");
                    clearPlaceholderStyle(element);
                }
            }

            // -- Event Handlers --
            var inputFocused = function () {
                if (isContentEmpty(this)) {
                    hidePlaceholder(this);
                }
            }

            var inputBlurred = function () {
                if (isContentEmpty(this)) {
                    showPlaceholder(this);
                }
            }

            var parentFormSubmitted = function () {
                if (isContentEmpty(this)) {
                    hidePlaceholder(this);
                }
            }

            // -- Bind event to components --
            $("textarea, input[type=‘text‘]").each(function (index, element) {
                if ($(element).attr("placeholder")) {
                    $(element).focus(inputFocused);
                    $(element).blur(inputBlurred);
                    $(element).bind("parentformsubmitted", parentFormSubmitted);

                    // triggers show place holder on page load
                    $(element).trigger("blur");
                    // triggers form submitted event on parent form submit
                    $(element).parents("form").submit(function () {
                        $(element).trigger("parentformsubmitted");
                    });
                }
            });
        });
时间: 2024-10-15 00:34:16

IE8不支持属性placeholder的相关文章

IE8 不支持html5 placeholder的解决方案

IE8不支持html5 placeholder的解决方法. /** * jQuery EnPlaceholder plug * version 1.0 2014.07.01戈志刚 * by Frans.Lee <[email protected]> http://www.ifrans.cn */ (function ($) { $.fn.extend({ "iePlaceholder":function (options) { options = $.extend({ pl

让IE6/IE7/IE8浏览器支持CSS3属性

让IE6/IE7/IE8浏览器支持CSS3属性 一.下载 您可以狠狠地点击这里:ie-css3.htc,这个玩意儿是让IE浏览器支持CSS3表现的关键东东. 二.上面的是什么东西 首先说说.htc文件,.htc文件是个脚本文件,我个人以为与js文件属于同一货色,只是呢,貌似htc是Internet Explorer(IE)的私生子,只有IE才认它.htc文件可以用来描述web行为,web行为允许程序员把自定义的功能“连接”到现有的元素和控件,而不是必须让用户下载二进制文件(例如ActiveX 控

兼容IE8以下浏览器input表单属性placeholder不能智能提示功能,以及使用jquery.validate.js表单验证插件的问题处理

当前很多表单提示使用了表单属性placeholder,可这属性不兼容IE8以下的浏览器,我自己写了一个兼容处理js // 兼容IE8以下浏览器input不能智能提示功能 if(navigator.appName == "Microsoft Internet Explorer" && (navigator.appVersion.match(/7./i)=="7." || navigator.appVersion.match(/8./i)=="

IE8不支持的部分css3属性处理

IE8不支持的部分css3属性 1.1 border-radius 圆角 border: 1px solid #696;padding: 60px 0;text-align: center; width: 200px;-webkit-border-radius: 8px;-moz-border-radius: 8px;border-radius: 8px;background: #EEFF99;behavior: url(/PIE.htc); 说明:不支持单边的圆角属性,比如: border-t

(二)给IE6-IE9中的input添加HTML5新属性-placeholder

同样是最近遇到的一个小问题.因为IE9以下input是不支持placeholder属性的.在网上找到了解决方案,果断带走.正如鲁迅先生所说的‘拿来主义’:运用脑髓,放出眼光,自己来拿!感谢.借花献佛在这里记录分享下. 用法很简单,在代码中引入placeholder.js,并加入后面的一段代码就行了. 1 <script src="jquery-1.11.3.js"></script> 2 <!--IE8-IE6支持html5 placeholder新属性

让IE6支持css3,让 IE7、IE8 都支持CSS3

但凡是前端工程师,都知道IE6,IE7,IE8不支持.或者不完全支持CSS3的属性. CSS3 有很多很强大.绚丽的效果,比如,圆角,阴影,渐变透明,渐变背景,等等. 因为IE6时代,没有什么标准,而因为各种原因,IE6用户几乎不会更新IE版本. 让IE6,IE7,IE8支持CSS3效果,有一个思路就是利用 VML 模拟. VML是The Vector Markup Language(矢量可标记语言),原本是微软自己开发的东西,很强大. 也就是说,IE下面,可以用 VML做出圆角 .半透明.阴影

socket.io对IE8的支持

默认下载了最新版的socket.io,版本号是1.7.2,对IE8的支持不好,反正在IE8下收发消息都不行.在网上查了很多资料,都解决不了IE8的问题,崩溃. 最后用了一个大家比较认可的版本1.0.6,可以支持IE8: 卸载socket.io npm uninstall socket.io 安装1.0.6版本的socket.io npm install [email protected] 后面的一些版本没有一一的去试,下了一个1.3.7版本的,还是可以支持收发消息的,只是发现IE8在关闭窗口时,

ie8 不支持new Date(&#39;2012-11-10&#39;)

ie 不支持Date.now()以及Date的一些方法开始是在火狐上使用new Date(Date.now())的的方法,这个写法也很sb,当然了当时也没想太多,比较我不是做前台的Date.now()在ie(我的是IE8)里 使用这个方法报错,火狐是可以的.然后就找了网上看了看,推荐使用Date().valueOf()果然可以了然后后面又遇到了关于new一个日期的方 式:new Date('2012-11-10')发现这个在火狐里是支持的(我现在的是火狐18.0),但是在IE(我的是IE8)里却

ie7,IE8不支持document.getElmentsByClassName的问题

1 if (!document.getElementsByClassName) { 2 document.getElementsByClassName = function(className, element) { 3 var children = (element || document).getElementsByTagName('*'); 4 var elements = new Array(); 5 for (var i = 0; i < children.length; i++) {