1. if (window.jQuery || window.Zepto) {
  2.  
  3. /**
  4. * 设置输入框提示信息
  5. * @param options
  6. * @author rubekid
  7. */
  8. var setInputTipValue = window.setInputTipValue = function(target, options){
  9. options = options ||{};
  10. var _self = target.get(0);
  11. if(_self._initTip){
  12. return false;
  13. }
  14. target.show();
  15. var color = options.color||"#999999";
  16. var inputPrompt = target.clone();
  17. var name = target.attr("name");
  18. var tipText = options.tipText || target.attr("data-tip") ||"";
  19. if(inputPrompt.is(":input") && inputPrompt.attr("type") != "text"){
  20. inputPrompt = $('<input type="text" />');
  21. }
  22.  
  23. inputPrompt.val(tipText);
  24. inputPrompt.removeAttr("id");
  25. inputPrompt.removeAttr("name");
  26. inputPrompt.removeAttr("maxlength");
  27. inputPrompt.removeAttr("data-tip");
  28. inputPrompt.attr("class", target.attr("class"));
  29. inputPrompt.attr("readonly", true);
  30. inputPrompt.css({"color":color});
  31. _self._initTip = true;//设置标示,防止重复绑定
  32.  
  33. var _event = "focus";
  34. if('ontouchstart' in window){ //手机浏览器聚焦无法弹出键盘处理
  35. inputPrompt.attr("disabled", "disabled");
  36. _event = "touchstart";
  37. }
  38.  
  39. var init = function(){
  40. if($.trim(target.val())==""){
  41. target.val("");
  42. target.after(inputPrompt);
  43. target.hide();
  44. inputPrompt.show();
  45. inputPrompt.bind(_event,function(){
  46. setTimeout(function(){
  47. target.focus();
  48. });
  49. });
  50. }
  51. };
  52. target.bind({
  53. blur: function(){
  54. init();
  55. },
  56. focus:function(){
  57. inputPrompt.detach();
  58. $(this).show();
  59. },
  60. _reset:function(){
  61. if($.trim(target.val())==""){
  62. init();
  63. }
  64. else{
  65. target.show();
  66. if(inputPrompt){
  67. inputPrompt.hide();
  68. inputPrompt.remove();
  69. }
  70. }
  71. }
  72. });
  73. init();
  74. };
  75.  
  76. /**
  77. * jQuery 自定义插件
  78. */
  79. (function ($) {
  80. 'use strict';
  81. /**
  82. * 设置输入灰色提示值
  83. * @author rubekid
  84. */
  85. $.fn.setInputTip = function(options){
  86. return this.each(function(){
  87. var settings = $.extend({}, options||{});
  88. setInputTipValue($(this), settings);
  89. });
  90. };
  91.  
  92. })(window.jQuery || window.Zepto);
  93. }

页面调用demo:

  1. <input type="text" data-tip="请输入要名称进行查询" id="keyword" name="keyword" />
  2. <script type="text/javascript">
  3. $(function(){
  4. $("#keyword").setInputTip();
  5. });
  6. </script>

效果:

jQuery自定义组件——输入框设置默认提示文字的更多相关文章

  1. <input>/<textarea>输入框设置默认提示文字(隐藏式)

    html代码如下: <tr>    <td>签   名:</td>    <td><input type="text" nam ...

  2. 输入框去除默认的文字,jquery方法

    需求:所有的输入框获取焦点时,去掉默认的提示文字,失去焦点时如果输入框为空,恢复默认的提示文字. 解决方案:jquery方法,以下有三种,按照利弊,我建议最后一种. 先看html代码: <inp ...

  3. ASP.NET TextBox 当鼠标点击后清空默认提示文字

    ASP.NET TextBox 当鼠标点击后清空默认提示文字 [ 方法一] 前台代码: <div>    <asp:TextBox ID="txtName" ru ...

  4. 基于jQuery的input输入框下拉提示层(自动邮箱后缀名)

    基于jQuery的input输入框下拉提示层,方便用户输入邮箱时的提示信息,需要的朋友可以参考下     效果图   // JavaScript Document (function($){ $.fn ...

  5. jquery自定义组件开发

    jquery的组件已经有很多,但是有可能找不到符合我们需求的组件,所以我们可以动手自己封装一个jquery组件. 第一步要知道封装jquery组件的基本语法 (function ($) { $.fn. ...

  6. Vue 父组件传递给子组件,设置默认值为数组或者对象时

    在vue 父子组件传参过程中,传递对象或者数组时,设置默认值为{}或者[] 错误写法: props: { pos: { type: [Object, Array], default: []//这是错误 ...

  7. ASP.NET TextBox 当鼠标点击后清空默认提示文字[转]

    前台文本框里添加下面2个事件属性: OnFocus="javascript:if(this.value=='提示文字') {this.value=''}" OnBlur=" ...

  8. 给input标签添加默认提示文字

    <input name="username" placeholder="请输入用户名" /> placeholder = "提示文字&qu ...

  9. jsp页面中如何让一个输入框内的提示文字是灰色而输入的文字是黑色

    <input name="name" type="text"  value="提示的文字" size="30" o ...

随机推荐

  1. JQUERY1.9学习笔记 之内容过滤器(一) 包含选择器

    描述:选择包含指定文本的所有元素.jQuery( ":contains(text)" ) text:一串大小写敏感的文本. 例:找出所有包含"john"的div ...

  2. 在PyQt4中使用matplotlib

    matplotlib作为Python中著名的数据可视化工具,其官网也提供了在PyQt4中使用的源码,这里举一个应用实例,以备不时之需. 1) 利用Qt Designer创建GUI界面 Demo的GUI ...

  3. Linux 下安装Python框架django建立与mysql的连接

    0.基本环境说明: a. Ubuntu 14.04 64bit b. python 2.7.6 c. django 1.8 d. django-registration e. django-widge ...

  4. PIL Image 转成 wx.Image、wx.Bitmap

    import wx from PIL import Image def ConvertToWxImage(): pilImage = Image.open('1.png') image = wx.Em ...

  5. 机器学习公开课~~~~mooc

    https://class.coursera.org/ntumlone-001/class/index

  6. VIJOS P1543极值问题

    已知m.n为整数,且满足下列两个条件:① m.n∈1,2,…,K② (n^ 2-mn-m^2)^2=1编一程序,对给定K,求一组满足上述两个条件的m.n,并且使m^2+n^2的值最大.例如,若K=19 ...

  7. Hbase 计数器

    Hbase计数器可以用于统计用户数,点击量等信息 基本操作 可以使用incr操作计数器,incr语法格式如下: incr '<table>', '<row>', '<co ...

  8. mysql 安装截图

    这里有3个选项, 1.Developer Machine(开发机器),个人用桌面工作站,占用最少的系统资源 2.Server Machine(服务器),MySQL服务器可以同其它应用程序一起运行,例如 ...

  9. Eclipse无法设置NDK路径的解决方法

    如果在Eclipse中设置NDK路径的时候遇到下面的情况(尼玛,我的NDK设置呢?): 可以参考百度经验解决:http://jingyan.baidu.com/article/4d58d5413000 ...

  10. UVA196-Spreadsheet(拓扑排序)

    Spreadsheet In 1979, Dan Bricklin and Bob Frankston wrote VisiCalc, the first spreadsheet applicatio ...