html5提供了很多方便的属性,例如input表单的placeholder属性,可以很方便添加input的默认提示语,用户体验也比较好,但html5的兼容性是个硬伤,最近cms大学小编就遇到了这个问题,页面上的placeholde属性在ie8及以下没有作用,于是就出现了下面的情况,input输入框变成空白了,非常尴尬,接下来CMS大学小编给出JavaScript的解决办法,将这段放在js文件末尾就好了。。
折叠展开JavaScript 代码
- (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", ""));
- }
- }
- }
-
-
- function isPlaceholer() {
- var input = document.createElement('input');
- return "placeholder" in input;
- }
-
- if (!isPlaceholer()) {
- $(function() {
-
- var form = $(this);
- 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);
- }
- });
-
- 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 == '') {
- 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);