JQuery:获取单选按钮值

21

我有以下HTML代码:

HTML:

<input type="radio" name="abc" value="0" selected="selected" style="display:none" />
<input type="radio" name="abc" value="1" />1+
<input type="radio" name="abc" value="2" />2+
<input type="radio" name="abc" value="3" />3+

JQuery获取选中的单选按钮

$('input:radio[name=abc]:checked').val();

为什么上面的代码在页面加载之前不起作用,在用户选择单选按钮之前呢?很奇怪,因为上面的代码在用户选择单选按钮后确实会起作用。

我觉得问题出在我将默认单选按钮值设置为0,但是如果你

也就是说,如果选择了单选按钮,则返回所选值 - 否则返回 0(当没有选择值时)


你的代码是否在 $(document).ready() 函数内部? - mway
2
@StaceyH 这已经是你第四次问这个问题了。如果你需要澄清,请编辑之前的问题。 - lonesomeday
@mway - 没有,我应该吗?如果需要的话,为什么? - StaceyH
Stacey,Javascript 将在 DOM(文档对象模型)准备就绪之前执行...这意味着元素(在本例中为单选按钮输入)尚不存在。$(document).ready() 的事件观察让 Javascript 知道在 DOM 可用时执行。 - M.W. Felker
2
@StaceyH 在过去的1小时内,您发布了3个非常相似的问题。您不必这样做。您可以编辑原始问题以添加新信息,例如跟进问题... - Šime Vidas
显示剩余2条评论
3个回答

23

您使用了错误的属性。对于单选按钮,您必须使用checked属性而不是selected属性。

<input type="radio" checked="checked">  

或者只需要:

<input type="radio" checked>

@StaceyH,你应该像@Šime建议的那样,将“selected”更改为“checked”。@jnpcl,可能有点太严厉了;我不认为@StaceyH是故意变得愚钝。 - David Thomas
@David:请阅读@lonesomeday在初始问题中的第一条评论。 - drudge
尝试使用OP的原始JQuery:$('input:radio[name=abc]:checked').val(); 它起作用了!@Ashish Babu 我尝试了你的JQuery,但我无法让它工作。 - allegory

20

首先将属性更正为checked,删除选中的属性,然后使用以下代码。 在按钮单击时,它将获取单选按钮的选定值。 列表示例

代码如下: ```javascript var selectedValue = document.querySelector('input[name="radioButtonName"]:checked').value; ```
   $("#btn").click(function() {
        $('input[type="radio"]:checked').val();
        });

8

单选框的属性是 checked,而不是 selected

<input type="radio" name="abc" value="0" checked="checked" style="display:none" />
<input type="radio" name="abc" value="1" />1+
<input type="radio" name="abc" value="2" />2+
<input type="radio" name="abc" value="3" />3+

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接