[英]Code works on jquery 1.8.3 but not work on 1.9.1 and up
我有一个适用于1.8.3的代码(键入内容时在模糊或聚焦后成功添加了SUFFIX),但不适用于1.9.1或更高版本。
<div id="mmm">
<input type=text class="gen"><br>
<input type=text class="gen"><br>
<input type=text class="gen">
</div>
$("#mmm").on('focusout change blur','.gen', function() {
var myvar=$(this);
coreid=this.value;
$.ajax (
{
url: '/echo/html/',
success: function (data,status) {
myvar.empty().attr("value", coreid + "MYSUFFIX" );
}
})
})
在1.8.3 /上检查Fiddle /如果更改为1.9.1或更高版本,则代码停止有效(键入内容时末尾不添加后缀)
通过阅读《 jQuery Core 1.9升级指南》,您将了解发生了什么变化。 对您而言重要的是:
jQuery 1.6引入了.prop()方法来设置或获取节点上的属性,并且不建议使用.attr()来设置属性。 但是,在特定情况下,最高1.9版本仍支持使用.attr()。
因此将.attr
更改为.prop
:
$("#mmm").on('focusout change blur', '.gen', function () {
var myvar = $(this);
coreid = this.value;
$.ajax({
url: '/echo/html/',
success: function (data, status) {
myvar.empty().prop("value", coreid + "MYSUFFIX");
}
})
})
您还会注意到,如果包含jQuery Migrate插件,则可以继续使用.attr()
就像Terry在下面指出的那样,.val()可能是不管的方式: myvar.val(coreid + "MYSUFFIX");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.