javascript-在IE6,IE7中单击时,动态添加的单选按钮未更新
作者:互联网
我已经使用jQuery将一组单选按钮动态添加到DOM.我已经注册了事件处理程序,它运作良好.但是,当在IE6和IE7中单击时,单选按钮组不会更新选中哪个按钮.
我的原始代码与此类似:
<body>
<form action="radio-ie7_submit" method="get" accept-charset="utf-8"></form>
<script type="text/javascript" charset="utf-8">
$(function() {
$.each(['A','B', 'C'], function (i, e) {
$('<input>')
.attr('type', 'radio')
.attr('name', 'foo')
.attr('checked', i == 1 ? 'checked' : '')
.val(e)
.appendTo($('form'))
.after(e + '<br />')
.click(function(){
alert('Kliiik')
})
})
})
</script>
</body>
同样,当我单击单选按钮时,将正确调用事件处理程序,但单选按钮不会更新.我做了这个黑客似乎工作:
<body>
<form action="radio-ie7_submit" method="get" accept-charset="utf-8"></form>
<script type="text/javascript" charset="utf-8">
$(function() {
$.each(['A','B', 'C'], function (i, e) {
$('<input>')
.attr('type', 'radio')
.attr('name', 'foo')
.attr('checked', i == 1 ? 'checked' : '')
.val(e)
.appendTo($('form'))
.after(e + '<br />')
.click(function(){
$('input[name="' + this.name + '"]').each(function () { this.checked = false });
this.checked = true;
alert('Kliiik')
})
})
})
</script>
</body>
基本上,我的解决方法是取消选中单选按钮组中的所有按钮,然后将单击的按钮标记为已选中.似乎有点不客气.有没有更好的方法来解决这个问题?有谁遇到过这个问题,可以进一步解释为什么这样做的方式?
谢谢.
解决方法:
这是带有表单元素的旧IE问题.这不是怪罪于Jquery.如果您想要针对IE 6用户的解决方法,则可以使点击功能如下
.click(function(){
$('input[name="' + this.name + '"]').attr('checked','');
this.checked = true;
alert('Kliiik')
})
标签:internet-explorer-7,internet-explorer-6,javascript,jquery,radio-button 来源: https://codeday.me/bug/20191208/2094975.html