我试图让 IE9 承认单选按钮组已选中一个选项,通过脚本设置。在我的脚本中,我希望检查第一个选项。在 xhtml doctype 上的兼容模式为 ON 的 IE9 中不起作用(必需配置)。
var $list = jQuery("#my-radio-container");
jQuery(":radio",$list).each(function (ind,el) {
var $elm = jQuery(el);
$elm.addClass("ui-widget-content");
if (ind == 0) {
$elm.addClass("ui-state-active")
.get()[0].setAttribute("checked", "checked")
});
我已经尝试了所有常用的组合:
$elm.attr('checked', 'checked');
$elm.prop('checked', 'checked');
$elm.attr('checked', true);
以及更不寻常的:
$elm.get()[0].setAttribute("checked", "checked")
看起来应该可以工作-如果您检查$list
then 的 innerHTML ,它表明该对象包含CHECKED="checked"
在其中,所以您会认为它会被选中?但是执行表单发布显示没有为单选按钮提交数据(单击按钮,而不是在脚本中设置它,显示相同的外部 html 并且表单确实发布了该值)。
恢复到这个甚至不起作用,这很奇怪:
document.forms[0].elements[jQuery(":radio",$list).filter(":first").attr("name")].value = jQuery(":radio",$list).filter(":first").attr("value");
// which works out like this:
document.forms[0].myradio.value="1";
- 我在等文件准备好。
- 我已经用谷歌搜索了这个。我一直在尝试各种文章中建议的各种技术,仅仅因为我只链接到一篇文章并不意味着我没有关闭其他大约 20 篇文章的标签。
- 我检查了我的元素是什么,是的,它是一个 input type=radio 标签,而不是它的标签或一些愚蠢的东西。
IE9 doesn't want to let me set a radio button check state through code.