码迷,mamicode.com
首页 > 其他好文 > 详细

placeholder的ie兼容性问题

时间:2015-07-23 17:47:33      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:placeholder的ie兼容性问题

在html中引用下面的js文件,且在样式文件中这样写:input,textarea{color:#999;}        input:focus,textarea:focus{color:#333;}

我这里只是简单的用全局样式这样写了,如果你不想所有的input框都有提示,可以给需要的input特定的类,比如:.txt{color:#999;}   .txt:focus{color:#333;}

(function($) {

 /**
  * Spoofs placeholders in browsers that don‘t support them (eg Firefox 3)
  *
  * Copyright 2011 Dan Bentley
  * Licensed under the Apache License 2.0
  *
  * Author: Dan Bentley [github.com/danbentley]
  */

 // Return if native support is available.
 if ("placeholder" in document.createElement("input")) return;

 $(document).ready(function(){
  $(‘:input[placeholder]‘).not(‘:password‘).each(function() {
   setupPlaceholder($(this));
  });

  $(‘:password[placeholder]‘).each(function() {
   setupPasswords($(this));
  });
   
  $(‘form‘).submit(function(e) {
   clearPlaceholdersBeforeSubmit($(this));
  });
 });

 function setupPlaceholder(input) {

  var placeholderText = input.attr(‘placeholder‘);

  setPlaceholderOrFlagChanged(input, placeholderText);
  input.focus(function(e) {
   if (input.data(‘changed‘) === true) return;
   if (input.val() === placeholderText) input.val(‘‘);
  }).blur(function(e) {
   if (input.val() === ‘‘) input.val(placeholderText);
  }).change(function(e) {
   input.data(‘changed‘, input.val() !== ‘‘);
  });
 }

 function setPlaceholderOrFlagChanged(input, text) {
  (input.val() === ‘‘) ? input.val(text) : input.data(‘changed‘, true);
 }

 function setupPasswords(input) {
  var passwordPlaceholder = createPasswordPlaceholder(input);
  input.after(passwordPlaceholder);

  (input.val() === ‘‘) ? input.hide() : passwordPlaceholder.hide();

  $(input).blur(function(e) {
   if (input.val() !== ‘‘) return;
   input.hide();
   passwordPlaceholder.show();
  });
   
  $(passwordPlaceholder).focus(function(e) {
   input.show().focus();
   passwordPlaceholder.hide();
  });
 }

 function createPasswordPlaceholder(input) {
  return $(‘<input>‘).attr({
   placeholder: input.attr(‘placeholder‘),
   value: input.attr(‘placeholder‘),
   id: input.attr(‘id‘),
   readonly: true
  }).addClass(input.attr(‘class‘));
 }

 function clearPlaceholdersBeforeSubmit(form) {
  form.find(‘:input[placeholder]‘).each(function() {
   if ($(this).data(‘changed‘) === true) return;
   if ($(this).val() === $(this).attr(‘placeholder‘)) $(this).val(‘‘);
  });
 }
})(jQuery);

版权声明:本文为博主原创文章,未经博主允许不得转载。

placeholder的ie兼容性问题

标签:placeholder的ie兼容性问题

原文地址:http://blog.csdn.net/sunny327/article/details/47024937

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!