动态检查单选按钮,基于'value'属性,不检查

问题描述 投票:0回答:4

尝试获取一个表单来加载之前检查过的无线电的页面(在新加载时)。

该页面的提交内容作为 php 变量保存,我可以将其传递到 JavaScript 中,其余的应该很简单,但它对我不起作用。

我的代码:

<div class="question">
            <label for="sv_213">Question?</label> 
            <input 
                    class="radio"
                    type="radio" 
                    value="Yes" 
                    name="sv_213" 
                />Yes
            <input 
                    class="radio"
                    type="radio" 
                    value="No" 
                    name="sv_213"
                />No

        </div>

我的JavaScript:

$(function() {
    var $213 = Yes;
    $("input[name='sv_213'][value="$213"]").attr('checked', true);

    });?

在上面的js中

var $213 = <dynamically generated content>

将其设置为等于选中的单选按钮的值

这是一个 js 小提琴,它不起作用: http://jsfiddle.net/CW8AC/

非常感谢您的帮助。

顺便说一句,我的代码是基于这个之前提出的问题: 从单选按钮组中设置选定的单选按钮的值

javascript html forms radio-button
4个回答
13
投票

您的值“Yes”需要用引号引起来,因为这是一个字符串,而不是布尔值或数字。

var $213 = "Yes";

此外,您需要使用 + 将变量添加到选择器中,如下所示:

$("input[name=sv_213][value="+$213+"]").attr('checked', true);

更新了小提琴,工作:http://jsfiddle.net/CW8AC/1/

完整的js代码:

$(function() {
    var $213 = "Yes";
    $("input[name=sv_213][value="+$213+"]").attr('checked', true);

    });

更新:##从 jQuery 1.6 开始,您还可以使用带有布尔值的 .prop 方法(这应该是首选方法):

$("input[name=sv_213][value="+$213+"]").prop('checked', true);

在我的例子中,.attr() 方法不能动态选择单选按钮,而 .prop() 可以。


2
投票

JavaScript 解决方案是:- 仅适用于两 (2) 个单选按钮:

let radios = document.getElementsByName(nameProperty);
let value = "1";//value you want to compare radio with

if (radios[0].value == value) {
  radios[0].checked = true;
}else{
  radios[1].checked = true;
}

对于三个或更多单选按钮:

let radios = document.getElementsByName(nameProperty);
let value = "1";//value you want to compare radio with

for (let i = 0, length = radios.length; i < length; i++) {
  if (radios[i].value == value) {
    radios[i].checked = true;
    
    // only one radio can be logically checked, don't check the rest
    break;
  }
}

0
投票

在 D3 中,以防有人想知道。

d3.selectAll("input[name='sv_213'][value=" + $213 + "]").property("checked", true);

0
投票

nikal...chal nikal.....wapas mat aana nikalllll.....

© www.soinside.com 2019 - 2024. All rights reserved.