最近的日常就是将测试小姐姐提交的bug进行修改,想来这种事情还是比较好开展的,毕竟此项目已上线一年多,现在只是一些前端的问题需要改正。实际上手的时候并不是这样,原项目是在谷歌上运行,后来由于要新增一个仅支持32位IE8流媒体播放器,便成了在IE上跑,大部分都有平稳退化,不会影响正常使用,但是对于那些不兼容的方法就比较尴尬了,IE8的下的F12 感觉是无效的,单击选择元素10下,有8下没有效果,每次只能先用谷歌定位到元素,然后在IE下依次展开点选,每每切换,着实费时费事。 现记录下常用的场景

① 文本框验证:

db中规定某字段长度为50,界面对应的文本框需要下验证,直接设置maxlength='50' 是不合理的,比如输入50个文字,其文本框的length 是50,但是保存到数据库表时,就是50*2,毕竟一个文字占用两个长度

这样的话,写一个函数,用正则识别汉字个数,然后  (val总长度-汉字的个数)+汉字个数*2 = 实际长度

        var testLenth = function ($txt) {

            var intb = $txt.val();

            re = /[\u4E00-\u9FA5]/g;
var zwlenth = 0;
if (re.test(intb)) {
zwlenth = intb.match(re).length * 2 + intb.length - intb.match(re).length;
return zwlenth;
}
else {
return intb.length;
} }

② 操作父节点

当父节点下的子节点中存在文字、图片时,直接设置父节点长度为0 对IE是无效果的,IE中默认文字大小是30px,所以解决方案有二:

其一 先获取子节点对象,然后将其文字大小设置为 0,然后再设置父节点高度为 0

其二 先隐藏子节点对象,然后再设置父节点高度 (PS:这里要使用动画效果,所以需要设置下高度)

③ 绑定事件

绑定事件时,如果情景合理,尽量使用bind去取代on,bind对 jq 的版本兼容性强于 on

1.bind()函数只能针对已经存在的元素进行事件的设置;但是live(),on(),delegate()均支持未来新添加元素的事件设置;
2.bind()函数在jquery1.7版本以前比较受推崇,1.7版本出来之后,官方已经不推荐用bind(),替代函数为on(),这也是1.7版本新添加的函数,同样,可以
 用来代替live()函数,live()函数在1.9版本已经删除; 3.live()函数和delegate()函数两者类似,但是live()函数在执行速度,灵活性和CSS选择器支持方面较delegate()差些,想了解具体情况,请戳这:
 http://kb.cnblogs.com/page/94469/ 4.bind()支持Jquery所有版本;live()支持jquery1.8-;delegate()支持jquery1.4.2+;on()支持jquery1.7+; 

④ webuploader.js 插件的引用

点击上传按钮,界面无响应,按照网上各种说法,增加 <meta>标签;确定swf 路径之类的,后来发现对于IE8来说,本地的 flash 版本一定要升级到位

⑤ 上传图片,预览的时候,凡是图片超过20K,都只显示一小部分,无法显示完全,这种情况可以调整 缩略图配置

            // 优化retina, 在retina下这个值是2
ratio = window.devicePixelRatio || , // 缩略图大小
thumbnailWidth = *ratio;//110 * ratio,
thumbnailHeight = *ratio;//110 * ratio,

⑥ 下拉列表联动时,div 遮挡正文

这种情况下最快捷的方法就是设置 div的层优先级,添加 z-index 属性,前提是 两元素的必须保证有 position属性值

⑦ 一些其他的bug,由于时间问题,一般处理方法是,重新挖一个坑,然后放进去,埋上

记录Js 文本框验证 与 IE兼容性的更多相关文章

  1. js文本框验证

    1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g,'')" onafte ...

  2. js实现文本框验证和实现小数的加减乘除

    <script type="text/javascript"> //加法 var m=accAdd(1.22,1.22); //减法 var m1=accSub(1.2 ...

  3. [js开源组件开发]js文本框计数组件

    js文本框计数组件 先上效果图: 样式可以自行调整 ,它的功能提供文本框的实时计数,并作出对应的操作,比如现在超出了,点击下面的按钮后,文本框会闪动两下,阻止提交.具体例子可以点击demo:http: ...

  4. JS的文本框验证以及form表单的提交阻止

    js: 1.只能输入数字 只能输入数字:<input type="text" onkeyup="javascript:ReNumber(this)" /& ...

  5. [JS] 文本框判断输入的内容是否为数字

    可以通过触发文本框的onchange事件来对输入的内容进行判断是否为数字 文本框的属性设置: 把onchange的属性对应的js函数写好即可 参数传输的是当前控件的value值,即text值 < ...

  6. WinForm 文本框验证

    这是一个自定义控件,继承了TextBox,在TextBox基础上添加了4个属性(下载): 1.ControlType 文本框需要验证的类型 2.ControlTypeText 显示的文字(只读) 3. ...

  7. js文本框字符数输入限制

    我们常常在前台页面做一些文本输入长度的验证,为什么呢?因为数据库字段设置了大小,如果不限制输入长度,那么写入库时就会引发字符串截断异常.今天就给大家分享一个jquery插件来解决这一问题. (func ...

  8. Axure文本框验证和外部url的调用

    文本框的验证和外部url的调用: 场景: 当输入文本框中的内容是满足下面条件时:输入4-10的数字,页面会跳转到QQ注册(https://ssl.zc.qq.com/v3/index-chs.html ...

  9. JS文本框输入限制

    1上面的文本框只能输入数字代码(小数点也不能输入): CODE: <input onkeyup="this.value=this.value.replace(/\D/g,'')&quo ...

随机推荐

  1. javascript:没有定义的变量和没有定义的属性

    1. 没有定义的变量 window.onload = function() { alert(a); // 报错: Uncaught ReferenceError: a is not defined / ...

  2. Windows下JDK多版本切换

    根据需要,我们可以在一台电脑上安装多个不同的JDK版本,在使用的过程中,可能需要进行版本质检的切换.下面简单说明在切换过程中需要注意的问题.(个人本机是部署了1.8和1.7版本的,安装目录均在C:\P ...

  3. sparksql udf自定义函数中参数过多问题的解决

    在进行spark sql数据库操作中,常常需要一些spark系统本身不支持的函数,如获取某一列值中的字符串. 如要获取 “aaaakkkkk”中的第4-第8个字符. 针对这种需求,只有设置UDF来实现 ...

  4. mysql 命令行 备份 恢复数据

    找到mysql启动位置 whereis mysql 备份指定数据库 包括表结构和数据 使用命令mysqldump 数据库名 -u 用户名 -p > 存储文件路径 [root@izm5e16gjd ...

  5. Android Runtime Stats

    Android 在 API 23 增加了运行时 GC 状态的获取接口,用法如下: Map<String, String> map = Debug.getRuntimeStats(); St ...

  6. 前端页面展示MySQL数据并实现前后端互动

    前端页面使用H-ui框架  后端使用flask框架  数据库使用mysql  连接数据库通过pymysql实现 前端代码如下 <html lang="en"> < ...

  7. gym 101873

    题还没补完 以下是牢骚:删了 现在只有六个...太恐怖了,我发现四星场我连300人的题都不会啊. C:最短路加一维状态就好了叭..嗯,一开始没看到输出的那句话 那个  "."也要输 ...

  8. Date类型与字符串之间的转换

    Java中Date类型与字符串转化   (一)Date与字符串的转化   Date.String.Timestamp之间的转换!   public static void main(String[]  ...

  9. laravel5.4+vue+element简单搭建(gulp+laravel Elixir)(转)

    如今laravel来到5.4版本,更方便引入vue了,具体步骤如下: 下图为我动到的文件 1.下载laravel5.4 2.命令行(laravel5.4目录下):composer install 3. ...

  10. 创建一个抽象的员工类, 抽象开发累继承员工类,JavaEE ,和安卓继承开发类在测试类中进行测试

    /* 1 定义一个员工类  所有的子类都抽取(抽象类)  Employee            属性:姓名  工号(生成get  set  )       方法:工作  抽象     2 定义一个研 ...