Javascript 代码适用于jquery 1.8.3,但不适用于1.9.1及以上版本
我有一个适用于1.8.3的代码(当键入内容时,在模糊或聚焦后成功添加后缀),但不适用于1.9.1或更高版本Javascript 代码适用于jquery 1.8.3,但不适用于1.9.1及以上版本,javascript,jquery,Javascript,Jquery,我有一个适用于1.8.3的代码(当键入内容时,在模糊或聚焦后成功添加后缀),但不适用于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 b
<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" );
}
})
})
$(“#mmm”).on('focusout change blur','.gen',function(){
var myvar=$(此);
coreid=该值;
$.ajax(
{
url:“/echo/html/”,
成功:功能(数据、状态){
myvar.empty().attr(“value”,coreid+“MYSUFFIX”);
}
})
})
检查1.8.3中的Fiddle/如果您更改为1.9.1或更高版本,代码停止工作(键入内容时未在末尾添加后缀)
通过阅读,你会看到发生了什么变化。对你来说重要的是:
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迁移插件,则可以继续使用.attr()
正如Terry在下面指出的,.val()可能是不考虑的方法:myvar.val(coreid+“MYSUFFIX”)代码>
通过阅读,你会看到发生了什么变化。对你来说重要的是:
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迁移插件,则可以继续使用.attr()
正如Terry在下面指出的,.val()可能是不考虑的方法:myvar.val(coreid+“MYSUFFIX”)代码>
通过阅读,你会看到发生了什么变化。对你来说重要的是:
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迁移插件,则可以继续使用.attr()
正如Terry在下面指出的,.val()可能是不考虑的方法:myvar.val(coreid+“MYSUFFIX”)代码>
通过阅读,你会看到发生了什么变化。对你来说重要的是:
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迁移插件,则可以继续使用.attr()
正如Terry在下面指出的,.val()可能是不考虑的方法:myvar.val(coreid+“MYSUFFIX”)代码>
似乎只要将attr改为prop就可以解决这个问题。.attr(“value”
不是更新输入值的首选方法。(应该使用.val()
).empty()
对于输入元素来说毫无意义。。注意调用.empty()
元素上的无效,因为
元素没有任何子元素。这是了解HTML属性和DOM属性之间区别的好机会。与您的问题直接相关的一个简单示例是.attr(“value”
大致相当于.prop(“defaultValue”)
,当您显然想要更改值而不是默认值时。似乎仅将attr更改为prop就可以解决此问题。.attr(“value”
不是更新输入值的首选方法。(您应该使用.val()
).empty()
对于输入元素来说毫无意义。请注意,对
元素调用.empty()
没有任何效果,因为
元素没有任何子元素。这是了解HTML属性和DOM属性之间区别的好机会。与您的问题直接相关的一个快速示例是.attr(“value”
大致相当于.prop(“defaultValue”
,当您显然想要更改值而不是默认值时。似乎仅将attr更改为prop就可以解决此问题。.attr(“value”
不是更新输入值的首选方法。(您应该使用.val()
).empty()
对于输入元素来说毫无意义。请注意调用.empty()
元素上的无效,因为
元素没有任何子元素。这是了解HTML属性和DOM属性之间区别的好机会。与您的问题直接相关的一个简单示例是.attr(“value”
大致相当于.prop(“defaultValue”)“
,当您显然想要更改值而不是默认值时。似乎仅将attr更改为prop就可以解决此问题。.attr(“value”
不是更新输入值的首选方法。(您应该使用.val()
).empty()
对于输入元素来说毫无意义。请注意,对
元素调用.empty()
没有任何效果,因为
元素没有任何子元素。这是了解HTML属性和DOM属性之间区别的好机会。quic