jquery版本升级不兼容的问题:$("input").attr("value")功能发生改变
2014-10-29 11:07
701 查看
之前项目中使用的是jquery-1.6.3.js,在这个版本中,如果我们想获取输入框的值,可以使用$("input").attr("value")或者是$("input").val(),这2种方式是等价的。
最近到了另一个项目组,使用的是jquery-2.1.1.js,结果发现了问题。我使用的是IE10浏览器。
如果text控件给了默认值,那么使用attr("value")得到的结果始终是45,不会得到输入控件实际输入的值。
如果text控件没有设置value属性,那么使用attr("value")得到的结果始终是undefined。
经过测试,不管是1.6.3版本,还是2.1.1版本,使用val()函数,总是能够成功获取输入框的实际值。
我又尝试了1.9.1版本,发现attr("value")和val()的表现跟2.1.1版本是一致的。不知道jquery是从哪儿个版本发生改变的,反正以后大家使用jquery时需要注意这个问题。如果没有想到版本升级带来的不兼容问题,那么可能会找不到问题的所在。由此可见版本升级是一件非常有风险的事情,一定要经过充分的验证,最好能有自动化的验证用例。如果所有的测试用例都能通过,那么基本意味着,版本的API功能都是兼容的,升级后风险相对来说很小。如果不明白版本发生的改变,就冒然升级,风险很大。
<input type="text" id="speed" /> $("#speed").attr("value"); $("#speed").val();
最近到了另一个项目组,使用的是jquery-2.1.1.js,结果发现了问题。我使用的是IE10浏览器。
<input type="text" id="speed" value="45"/> $("#speed").attr("value");//始终是45
如果text控件给了默认值,那么使用attr("value")得到的结果始终是45,不会得到输入控件实际输入的值。
<input type="text" id="speed" /> $("#speed").attr("value");//始终是undefined
如果text控件没有设置value属性,那么使用attr("value")得到的结果始终是undefined。
经过测试,不管是1.6.3版本,还是2.1.1版本,使用val()函数,总是能够成功获取输入框的实际值。
<input type="text" id="speed" value="45"/> $("#speed").val();//能够得到输入框的实际值
我又尝试了1.9.1版本,发现attr("value")和val()的表现跟2.1.1版本是一致的。不知道jquery是从哪儿个版本发生改变的,反正以后大家使用jquery时需要注意这个问题。如果没有想到版本升级带来的不兼容问题,那么可能会找不到问题的所在。由此可见版本升级是一件非常有风险的事情,一定要经过充分的验证,最好能有自动化的验证用例。如果所有的测试用例都能通过,那么基本意味着,版本的API功能都是兼容的,升级后风险相对来说很小。如果不明白版本发生的改变,就冒然升级,风险很大。
相关文章推荐
- jquery版本号升级不兼容的问题:$("input").attr("value")功能发生改变
- Jquery 版本兼容 attr("checked") 返回undefined 获取选中失效
- Jquery升级到1.11后,attr("value")方法取不到text值
- jQuery中实现全选功能时使用attr( )改变checked值只能生效一次的问题
- jQuery attr("value") 和 val的区别
- 使用<input type="text" value=<%=str%>>出现取值不全的问题
- 关于ViewState的问题 <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="之后有一大串乱码
- html <"input "/>关于value 空格后的内容消失的问题
- Ubuntu 14.04 "系统的网络服务与此版本的网络管理器不兼容解决 "问题
- 兼容IE8以下浏览器input表单属性placeholder不能智能提示功能,以及使用jquery.validate.js表单验证插件的问题处理
- Jquery 版本兼容性 attr("checked") 返回undefined或失效
- 关于ViewState的问题 <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="之后有一大串乱码
- jQuery1.26以上版本"@"的问题
- 解决在高版本浏览器下的input type="file"的路径问题
- 已成功与服务器建立连接,但是在登录前的握手期间发生错误"问题解决方案
- char *a="I am a teacher."改变值的问题。-指针学习笔记
- 问题:For input string: "id"
- nginx升级到 0.8.53 之后,使用老的配置出现duplicate MIME type "text/html"问题的解决办法
- sql server 2005 连接不到服务器 "已成功与服务器建立连接,但是在登录前的握手期间发生错误"问题解决方案
- 关于jquery获取input的value问题