占位符placeholder的益处不用多说,但是很不幸的是,在IE8之前的浏览器里是无法实现placeholder这一属性的,所以在需要兼容IE8之前的浏览器的情况下,我们不得不想办法模拟实现placeholder属性。

在前面的一篇文中《获取表单的初始值,模拟placeholder属性》中,就曾经讲过placeholder属性的模拟,这里再翻出来一遍,是因为又遇到了新的问题。

当输入值之后,再刷新页面,在火狐浏览器中,获取到的defaultValue会是新的输入值。

直接以之前的项目中一小段代码为例:

    <ul class="query-box">
<li><input type="text" value="请输入8位准考证号" placeholder="请输入8位准考证号" tabindex="1"></li>
<li class="img-verification">
<input type="text" value="请输入验证码" placeholder="请输入验证码" tabindex="2">
<div><img src="data:images/logo.png" alt=""></div>
</li>
<li>
<button tabindex="3">查询</button>
</li>
</ul>

该项目需要兼容到IE8,所以这里就必须解决IE8不支持placeholder这一属性的问题。项目中使用了jquery。

最开始的想法,就是使用初始值的方法,但是在火狐浏览器中测试时,发现了bug,当输入值之后,再刷新页面,火狐浏览器会记住所输入的值,作为初始值,导致不能完全模拟placeholder。只能转换方向,还是直接使用jquery方法来解决吧!

   var permissionNum = /^\d{8}$/;
  $(".query-box").find("input[type=text]").each(function (index, item) {
var defaultVal = $(this).prop('placeholder');
$(this).on("focus keydown", function () {
var val = $(this).val();
if (val == defaultVal) {
$(this).val("").css("color", "#448aca");
}
}).on("blur keyup", function () {
var val = $(this).val();
if (val == "") {
$(this).val(defaultVal).css("color", "#bababa");
}
// 校验准考证号码,符合8位数字,就高亮查询按钮
if (index == 0) {
var $target = $(this).parents(".query-box").find("button");
permissionNum.test(val) ? $target.addClass("active") : $target.removeClass("active");
}
})
});

  

也没有什么高深的东西,只要能转过这个弯来就可以了!

输入框占位符placeholder的更多相关文章

  1. [Sass]占位符 %placeholder

    [Sass]占位符 %placeholder Sass 中的占位符 %placeholder 功能是一个很强大,很实用的一个功能,这也是我非常喜欢的功能.他可以取代以前 CSS 中的基类造成的代码冗余 ...

  2. 占位符(placeholder text)

    占位符(placeholder text)是用户在input(输入)框输入任何东西之前放置在input(输入)框中的预定义文本. 你可以用如下方式创建占位符: <input type=" ...

  3. IE8支持HTML5的占位符placeholder

    /*IE8支持placeholder占位符*/ if( !('placeholder' in document.createElement('input')) ){ $('input[placehol ...

  4. tensorflow中常量(constant)、变量(Variable)、占位符(placeholder)和张量类型转换reshape()

    常量 constant tf.constant()函数定义: def constant(value, dtype=None, shape=None, name="Const", v ...

  5. c++11模拟boost元占位符placeholder

    准备实现meta programming的fold函数,发现自己缺少占位符实现,这样传入fold的transform op类(元函数)都不得不另外写个外覆类,其实我觉得没啥不好,简单直接,说实话干扰什 ...

  6. sass 继承 占位符 %placeholder

    @extend //SCSS .btn { border: 1px solid #ccc; padding: 6px 10px; font-size: 14px; } .btn-primary { b ...

  7. RunTime运行时在iOS中的应用之UITextField占位符placeholder

    RunTime运行时机制 runtime是一套比较底层的纯C语言API, 属于1个C语言库, 包含了很多底层的C语言API. 在我们平时编写的Objective-C代码中, 程序运行过程时, 其实最终 ...

  8. based on Greenlets (via Eventlet and Gevent) fork 孙子worker 比较 gevent不是异步 协程原理 占位符 placeholder (Future, Promise, Deferred) 循环引擎 greenlet 没有显式调度的微线程,换言之 协程

    gevent GitHub - gevent/gevent: Coroutine-based concurrency library for Python https://github.com/gev ...

  9. Sass混合宏、继承、占位符

    混合宏-声明混合宏如果你的整个网站中有几处小样式类似,比如颜色,字体等,在 Sass 可以使用变量来统一处理,那么这种选择还是不错的.但当你的样式变得越来越复杂,需要重复使用大段的样式时,使用变量就无 ...

随机推荐

  1. spring-IOC容器(三)

    一.通过工厂方法配置Bean: .xml <!-- class属性:指向静态工厂方法的全类名 factory-method:指向静态工厂方法的名字 constructor-arg:如果工厂方法需 ...

  2. 使用 Visual Studio 分析器找出应用程序瓶颈

    VS的性能分析工具 性能分析工具的选择 打开一个“性能分析”的会话:Debug->Start Diagnotic Tools Without Debugging(或按Alt+F2),VS2013 ...

  3. 代码编辑器之sublime text

    http://www.iplaysoft.com/sublimetext.html 1.特点: 中文乱码问题:另外,很多朋友反映表示打开中文会有乱码,其实是因为ST2本身只支持UTF-8编码,而我们常 ...

  4. 自定义自己的jQury插件

    对于一个商业插件来说,自定义插件的样式是必不可少的.我们可以通过我们自己输入不同的样式,来改变开发者的默认样式.比如说最常见的 width.height.url.color等等.要是没有这些自定义的东 ...

  5. git 强行pull并覆盖本地文件

    git 强行pull并覆盖本地文件 git fetch --all git reset --hard origin/master git pull

  6. [Android] 配置build.gradle 动态传参

    (1)一个Android工程中有一个build.gradle是负责Project范围的,而Module中又有各自的build.gradle是专门负责模块的. (2)在Gradle中Task是一等公民, ...

  7. AM软件中reconfig的方法

    1.先进入admin 2.选数据库名: 比如这个HULLBLOCK/AFTBLOCKS   3. 选好数据库后在命令栏依次输入以下命令,输入每一行后回车一下: FROM DB HULLBLOCK/AF ...

  8. Ubuntu16.04 LTS软件中心闪退及修改阿里源

    现象: 进入软件中心点击任意,直接退出 解决办法: 先更换软件源,我的为阿里云 1. 备份 源位置 :/etc/apt/sources.list 2. 更改 sudo vi /etc/apt/sour ...

  9. 树莓派Raspberry Pi zero w无线联网实测

    第一次学习树莓派,使用的是Raspberry Pi zero w的型号. 刚开始,就只有一块板子!!!这要怎么开发啊 经过网上查阅资料,发现可以通过WiFi连接PC端实现开发测试 准备材料:一根USB ...

  10. php 安装 phpredis 扩展

    1. git clone https://github.com/nicolasff/phpredis2. 首先git clone 项目到本地,切换到phpredis目录下 phpize ./confi ...