我有一个适用于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上检查小提琴/如果您更改为1.9.1或更高版本,则代码停止有效(在输入内容时未添加后缀)
答案 0 :(得分:3)
通过阅读jQuery Core 1.9 Upgrade Guide,您会看到发生了哪些变化。对您来说重要的是:
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");
}
})
})
<强> jsFiddle example 强>
您还会注意到,如果您包含jQuery Migrate插件,您可以继续使用.attr()
<强> jsFiddle example 强>
正如特里在下面提到的那样,无论如何,.val()可能是最好的方法:myvar.val(coreid + "MYSUFFIX");
<强> jsFiddle example 强>