基于这个问题radio selected
我用这种方式
<input type="radio" class="fp" value="q" name="fp" checked>
fp = $('input[name=fp]:checked').val();
alert(fp);
获取选择单选框的值。请参阅此fiddle
但它在IE7和IE8下无效。始终得到“对象不支持此属性或方法”。有什么建议吗?
答案 0 :(得分:2)
答案 1 :(得分:2)
答案 2 :(得分:1)
IE可能会出现意外行为,伪选择器使用attr
或prop
(1.6 +)
fp = $("input[name='fp']").filter(function(){return $(this).attr("checked");}).val();
答案 3 :(得分:0)
这可能看起来很简单,但我相信这个问题涉及这样一个事实,即您将值分配给名为“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);
答案 4 :(得分:0)
您没有关闭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 :(得分:0)
在我的情况下,我得到了这种行为,因为表单提交调用了一个函数,它替换了表单的html,然后检查了选中的项目:
var sizeSelected = $(this).find("input[name='size']:checked").val();
事后看来,奇怪的是这适用于Chrome,Firefox和Safari,但确实如此。只有IE / Edge与sizeSelected == null
联系。解决方案是在清除/替换表单的html之前检查表单结果。