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", ""));
 - }
 - }
 - }
 - //判断是否支持placeholder
 - 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);
 

