jquery版本号升级不兼容的问题:$("input").attr("value")功能发生改变

之前项目中使用的是jquery-1.6.3.js,在这个版本号中,假设我们想获取输入框的值,能够使用$("input").attr("value")或者是$("input").val(),这2种方式是等价的。

<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功能都是兼容的,升级后风险相对来说非常小。假设不明确版本号发生的改变。就冒然升级。风险非常大。

时间: 2024-12-26 05:35:43

jquery版本号升级不兼容的问题:$(&quot;input&quot;).attr(&quot;value&quot;)功能发生改变的相关文章

JQuery与IE6的兼容问题之&lt;Select&gt;

原文地址:http://hi.baidu.com/fengbaobao/item/403cf90be03ba131a2332ac2 在IE7,FF下页面经常会用如下语句对一个Select列表选择其中的值,但是该JQuery语句IE6不支持, $("#CarTrimSeries").get(0).value = '<%=seriesId %>'; $("#CarTrimSeries").attr("value",'<%=serie

【jquery】基于 jquery 实现 ie 浏览器兼容 placeholder 效果

placeholder 是 html5 新增加的属性,主要提供一种提示(hint),用于描述输入域所期待的值.该提示会在输入字段为空时显示,并会在字段获得焦点时消失.placeholder 属性适用于以下类型的 input 标签:text, search, url, telephone, email 以及 password. 我们先看下在谷歌浏览器中的效果,如图所示: 获得焦点时: 输入字段: 因为是 html5 属性,自然低版本的浏览器比如 ie6-8 不兼容.下面就介绍下如何在低版本浏览器中

JQuery validate 在IE兼容模式下出现 js错误(成员找不到)的修正:

JQuery validate 在IE兼容模式下 下出现 js错误(成员找不到)的修正: // Add novalidate tag if HTML5. //this.attr( "novalidate", "novalidate" ); if (typeof (Worker) !== "undefined") { this.attr('novalidate', 'novalidate'); } 将第二行注释掉,换成第三行! JQuery val

兼容IE8以下浏览器input表单属性placeholder不能智能提示功能,以及使用jquery.validate.js表单验证插件的问题处理

当前很多表单提示使用了表单属性placeholder,可这属性不兼容IE8以下的浏览器,我自己写了一个兼容处理js // 兼容IE8以下浏览器input不能智能提示功能 if(navigator.appName == "Microsoft Internet Explorer" && (navigator.appVersion.match(/7./i)=="7." || navigator.appVersion.match(/8./i)=="

jquery html5 实现placeholder 兼容password ie6

<style type="text/css">/* 设置提示文字颜色 */::-webkit-input-placeholder {color: #838383;}:-moz-placeholder {color: #838383;}.placeholder {color: #ccc;}</style>登录用户名.密码文字提示,鼠标离开显示文字 html5 and jquery<br/><br/>账号:<input type=&qu

使用 &amp;amp;quot;新增移除windows 组件&amp;amp;quot; 时, 显示错误消息&amp;amp;quot;无法开启setupqry.inf&amp;amp;quot;

使用 "新增移除windows 组件" 时, 显示错误消息"无法开启setupqry.inf" 安装程序无法开启资讯文件 setupqry.inf 很多人的电脑在升级 windows xp sp3版本之后 在控制面板-->新增移除程序--->新增/移除windows 组件时 会出现 安装程序无法开启资讯文件 setupqry.inf.请联络您的系统管理员.指定错误码是0x2在第0行 解决的方法: 1.我的电脑--->进到c槽-->window

玩转web之JQuery(二)---改变表单和input的可编辑状态(封装的js)

var FormDeal = { /** * 功能 :将表单的所有input都设为可编辑的 *@param 要操作表单的id */ formWritable: function (formId) { $("#"+formId+" input,textarea").removeAttr("readonly"); $("#"+formId+" input,textarea").css('backgroundCo

jQuery使用scrollTop获取div标签的滚动条已滚动高度(jQuery版本1.6+时,用prop()方法代替attr()方法)

$("#content").append('<div>' + data.msg + '</div>'+.'<br>');$('#content').attr({ scrollTop: $('#content').attr('scrollHeight') }); //jQuery版本1.6+时,用prop()方法代替attr()方法:[重点,否则获取不到]$('#content').prop({ scrollTop: $('#content').pro

jquery版本升级不兼容的问题:$(&quot;input&quot;).attr(&quot;value&quot;)功能发生改变

之前项目中使用的是jquery-1.6.3.js,在这个版本中,如果我们想获取输入框的值,可以使用$("input").attr("value")或者是$("input").val(),这2种方式是等价的. <input type="text" id="speed" /> $("#speed").attr("value"); $("#speed&