如何使用JavaScript设置单选按钮状态

vin*_*rky 53 javascript html5

使用JavaScript选择性地将单个或多个单选按钮设置为所需设置的最佳方法是什么?

Sta*_*arx 97

非常简单

radiobtn = document.getElementById("theid");
radiobtn.checked = true;
Run Code Online (Sandbox Code Playgroud)

  • @RafaelBarros,你把Javascript属性`.checked`与xhtml属性`checked ="checked"`混淆了.由于xhtml试图符合xml,因此不允许没有值的属性(与html 4或5相比,`<sometag checked>`是正确的语法).无论您使用哪种标记语言,Javascript都是Javascript,而Javascript对象中的属性很可能是一个布尔值.实际上,与`<input type ="radio"/>`相关联的DOM对象具有属性`.checked`,它可以是`true`或`false`. (7认同)
  • 我建议在`radiobtn = ...`之前添加`var`以避免它在全局范围内. (3认同)

gab*_*lde 32

表格

<form name="teenageMutant">
  <input value="aa" type="radio" name="ninjaTurtles"/>
  <input value="bb" type="radio" name="ninjaTurtles"/>
  <input value="cc" type="radio" name="ninjaTurtles" checked/>
</form>
Run Code Online (Sandbox Code Playgroud)

默认情况下将检查value ="cc",如果删除"已选中",则在首次加载表单时将检查非框.

document.teenageMutant.ninjaTurtles[0].checked=true;
Run Code Online (Sandbox Code Playgroud)

now value ="aa"被选中.其他无线电复选框未选中.

看到它在行动:http://jsfiddle.net/yaArr/

您可以使用表单ID和单选按钮ID执行相同操作.这是一个带有id的表单.

<form id="lizardPeople" name="teenageMutant">
  <input id="dinosaurs" value="aa" type="radio" name="ninjaTurtles"/>
  <input id="elephant" value="bb" type="radio" name="ninjaTurtles"/>
  <input id="dodoBird" value="cc" type="radio" name="ninjaTurtles" checked/>
</form>
Run Code Online (Sandbox Code Playgroud)

默认情况下会检查value ="cc".

document.forms["lizardPeople"]["dinosaurs"].checked=true;
Run Code Online (Sandbox Code Playgroud)

现在值="aa"与id ="dinosaurs"被检查,就像之前一样.

看到它在行动:http://jsfiddle.net/jPfXS/


Jus*_*son 16

香草Javascript:

yourRadioButton.checked = true;
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$('input[name=foo]').prop('checked', true);
Run Code Online (Sandbox Code Playgroud)

要么

$("input:checkbox").val() == "true"
Run Code Online (Sandbox Code Playgroud)


sbr*_*bot 11

您还可以显式设置单选按钮的值:

<form name="gendersForm">
  <input type="radio" name="gender" value="M" /> Man
  <input type="radio" name="gender" value="F" /> Woman
</form>
Run Code Online (Sandbox Code Playgroud)

使用以下脚本:

document.gendersForm.gender.value="F";
Run Code Online (Sandbox Code Playgroud)

并自动检查相应的单选按钮.

看看JSFiddle上的例子.


Lui*_*ico 6

/**
 * setCheckedValueOfRadioButtonGroup
 * @param {html input type=radio} vRadioObj 
 * @param {the radiobutton with this value will be checked} vValue 
 */
function setCheckedValueOfRadioButtonGroup(vRadioObj, vValue) {
    var radios = document.getElementsByName(vRadioObj.name);
    for (var j = 0; j < radios.length; j++) {
        if (radios[j].value == vValue) {
            radios[j].checked = true;
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)