`
alexcheng
  • 浏览: 181838 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

IE 6/7 动态创建的单选框无法被选择

阅读更多

在IE 6/7上面,动态创建的单选框是无法被用户来选择的。这是一个已知的bug,并且在IE 8中被修正了。 已经有不少的资料在讨论这个问题了。对于这个问题,需要注意的是,如果要设置单选框的被选择状态(通过checked = true),需要在单选框已经被加入到DOM结构中之后来进行。
我也写了一个简单的页面来测试并修正这个问题。基本的思路是通过onclick事件来动态选择。基本的代码如下:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>IE 7 radio</title>
  <script type="text/javascript">
  (function() {
    function byId(id) {
      return document.getElementById(id);
    }

    var data = [["label1", "value1"], ["label2", "value2"], ["label3", "value3"]];

    var selectedRadio = null;

    function buildRadios() {
      var root = byId("test");
      for (var i = 0; i <data.length; i++) {
        var label = document.createElement("label");
        label.innerHTML = data[i][0];
        var radio = document.createElement("input");
        radio.type = "radio";
        radio.name = "test_radio";
        radio.value = data[i][1];
        root.appendChild(label);
        root.appendChild(radio);

        if (i == 0) {
          radio.checked = true;
          selectedRadio = radio;
        }

        radio.onclick = function() {
          this.checked = true;
          if (selectedRadio != this) {
            selectedRadio.checked = false;
            selectedRadio = this;
          }
        };
      }
    }

    window.onload = function() {
      buildRadios();
    };
  })();
  </script>
</head>

<body>
  <div id="test"></div>
</body>
</html>
 
0
0
分享到:
评论

相关推荐

    jQuery实现美化版的单选框和复选框

    在这个案例中,我们将探讨如何使用jQuery来实现美化版的单选框(radio)和复选框(checkbox),创建出一种简洁而清爽的样式风格。 首先,我们要明白jQuery的基本用法。jQuery通过选择器选取DOM元素,然后应用各种...

    jquery iCheck.js实现的自定义复选框checkbox和单选框radio样式插件.zip

    《jQuery iCheck.js实现自定义复选框与单选框样式插件详解》 在Web开发中,我们经常需要对复选框(checkbox)和单选框(radio)进行美化和定制,以提升用户界面的视觉体验。jQuery iCheck.js是一款强大的插件,它...

    表单中单选框添加选项和移除选项

    在网页开发中,表单是用户与网站交互的重要组成部分,而单选框(Radio Button)则是表单中常见的一种输入控件,用于让用户在多个预设选项中选择一个。本篇文章将详细讲解如何在表单中对单选框添加和移除选项,以及...

    ExtJS(ajax框架) 4.2.1

    自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染,这些也算可以想到的功能。 再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变...

    IE 不兼容的几个js问题及解决方法

    #### 五、动态创建单选按钮 **问题描述:** 使用`document.createElement`结合`setAttribute`方法创建单选按钮时,在IE中可能会有问题。 **解决方法:** 直接使用HTML字符串创建单选按钮: ```javascript var ...

    让复选框只能选择一项的方法

    然而,有时我们希望用户只能从这些选项中选择一个,这通常被称为单选框(Radio Button)的功能。但如果你的界面设计中只有复选框,并且希望限制用户只能选择一项,那么可以通过编程实现这一功能。以下就是如何在...

    inspinia框架

    3. **表单元素**:Inspinia提供了一系列的表单控件,如输入框(input)、选择器(select)、复选框(checkbox)、单选按钮(radio)、日期选择器(date picker)等,确保表单的设计和交互符合现代Web标准。...

    用谷歌浏览器得不到动态添加表单的值

    在动态创建表单元素时,比如使用`document.createElement()`、`appendChild()`等方法,这些新添加的元素可能不会立即被JavaScript引擎识别,尤其是在事件处理或者数据绑定时。因此,当你试图通过`innerHTML`获取这些...

    Chosen让长并且笨拙的选择框更友好

    在网页设计中,选择框(Select)是一种常见的表单元素,用于让用户从多个选项中进行选择。然而,当选项数量过多或者选项名称过长时,原生的HTML Select控件可能会变得难以管理和不友好,用户体验也随之下降。为了...

    深入理解选择框脚本[推荐]

    在网页设计和开发中,选择框(Select Box)是一种常见的用户界面组件,它允许用户从一组预定义的选项中进行选择。本文将深入探讨选择框的JavaScript操作,重点关注`&lt;select&gt;`元素及其相关的属性和方法。 1. **...

    jQuery Select(单选) 模拟插件 V1.3.6

    为了改善这一情况,许多开发者选择了使用JavaScript库,如jQuery,来创建自定义的模拟选择器。本文将详细解析"jQuery Select(单选) 模拟插件 V1.3.6"的核心功能、应用场景以及实现原理。 ### 1. 插件介绍 "jQuery ...

    easyui后台管理系统框架

    3. **表单(Form)**:提供了各种输入控件,如文本框、下拉框、复选框、单选框等,便于用户填写和提交数据。表单验证功能可以确保输入数据的有效性。 4. **菜单(Menu)**:用于构建多级导航菜单,使后台系统结构清晰,...

    常用JS脚本页面判断

    - 单选框和复选框:检查是否被选中,以及全选、多选、全不选、反选的功能实现。 - 文件类型:在文件上传时验证文件的类型。 4. 字符类: - 全字母:使用正则表达式检查字符串是否由大小写字母组成。 - 字母数字...

    在bs开发中经常用到的javaScript技术.doc

    - 单选框选择状态验证:判断单选按钮是否被选中。 - 复选框选择状态验证:检查至少有一个复选框被选中。 - 复选框全选、多选、全不选、反选功能:通过操作选中状态实现。 4. 字符类 - 字母组成验证:使用正则...

    jQuery.Uniform

    它提供了一套统一的样式,使表单元素如选择框、复选框、单选按钮、文本输入框等在各种浏览器中保持一致的外观,提升用户体验。在本文中,我们将深入探讨jQuery Uniform的原理、安装、使用方法以及一些常见的定制技巧...

    《程序天下:JavaScript实例自学手册》光盘源码

    10.1 选择了哪一个单选框 10.2 单击文字实现单选框的选定 10.3 被选中的复选框求和 10.4 复选框组选 10.5 复选框分组全选 10.6 复选框和文本框的联动效果 10.7 单击任意单元格都能自动选中复选框 10.8 调用复选框...

    在b/s开发中经常用到的javaScript技术整理

    - **3.5 判断单选框是否选择** ```javascript function isChecked(checkboxName) { var checkboxes = document.getElementsByName(checkboxName); for (var i = 0; i ; i++) { if (checkboxes[i].checked) ...

    b s开发常用javaScript技术第1 4页.docx

    - **3.5 单选框是否被选中验证**:检查单选框是否被选中。 - **3.6 复选框是否被选中验证**:检查复选框是否被选中。 - **3.7 复选框操作**:实现复选框的全选、多选、全不选以及反选等功能。 - **3.8 文件上传...

    程序天下:JavaScript实例自学手册

    10.1 选择了哪一个单选框 10.2 单击文字实现单选框的选定 10.3 被选中的复选框求和 10.4 复选框组选 10.5 复选框分组全选 10.6 复选框和文本框的联动效果 10.7 单击任意单元格都能自动选中复选框 10.8 调用复选框...

    23.2 Bootstrap框架3

    7. **表格和表单**: Bootstrap 3提供了预设样式的表格和表单控件,包括表头、表体样式、排序功能,以及各种输入类型的表单控件,如文本输入、选择器、复选框和单选按钮,使得数据展示和用户输入更加直观。...

Global site tag (gtag.js) - Google Analytics