【问题标题】:How can I get which radio is selected via jQuery under IE7 and IE8?如何获取在 IE7 和 IE8 下通过 jQuery 选择的收音机?
【发布时间】:2012-01-16 21:20:36
【问题描述】:

基于这个问题radio selected

我用这种方式

<input type="radio" class="fp" value="q" name="fp" checked>
fp = $('input[name=fp]:checked').val();
alert(fp);

获取选择单选框的值。请看这个fiddle

但是在IE7和IE8下是不行的。总是得到 "Object 不支持此属性或方法" 。有什么建议吗?

【问题讨论】:

    标签: jquery jquery-selectors radio


    【解决方案1】:

    你只需要将你的值设置成一个变量,如图:

    var fp = $("input[name='fp']:checked").val();
    alert(fp);
    

    Example

    【讨论】:

      【解决方案2】:

      使用前声明变量:

      http://jsfiddle.net/5cjK7/13/

      var fp = $('input[name=fp]:checked').val();
      
      alert(fp);
      

      【讨论】:

        【解决方案3】:

        使用 attrprop(1.6+) 的伪选择器可能会导致 IE 出现意外行为

        fp = $("input[name='fp']").filter(function(){return $(this).attr("checked");}).val();
        

        【讨论】:

          【解决方案4】:

          你没有关闭你的 inout 元素和 attr。 checked 应该有一个类似的值;

          <input type="radio" class="fp" value="q" name="fp" checked="checked" />
          

          还有; - 您需要在使用变量之前声明它。 - jQuery 选择器应该包含引号。 - 选择器返回一个元素集合,因此您应该提取第一个匹配项,或许可以使用first()

          var fp = $('input[name="fp"]:checked').first().val();
          

          【讨论】:

            【解决方案5】:

            这可能看起来很简单,但我相信问题在于您将值分配给名为“fp”的变量,该变量恰好与表单元素的名称匹配。 Internet Explorer 在范围内已经有一个名为“fp”的变量,它是单选按钮元素本身。不允许将字符串值分配给该变量。您可以通过以下两种方式之一解决此问题:

            // Declare a new variable
            var fp = $('input[name=fp]:checked').val();
            alert(fp);
            

            或者...

            // Assign to a new variable in global scope (not recommended)
            xy = $('input[name=fp]:checked').val();
            alert(xy);
            

            【讨论】:

              【解决方案6】:

              在我的情况下,我遇到了这种行为,因为表单提交调用了一个函数,该函数替换了表单的 html,然后检查了选中的项目:

              var sizeSelected = $(this).find("input[name='size']:checked").val();
              

              事后看来,这很奇怪,这在 Chrome、Firefox 和 Safari 中有效,但确实有效。只有 IE/Edge 与 sizeSelected == null 绑定。解决方案是在清除/替换表单的 html 之前检查表单结果。

              【讨论】:

                猜你喜欢
                • 2012-10-16
                • 2017-07-22
                • 2012-05-16
                • 1970-01-01
                • 2012-08-24
                • 2013-05-13
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多