0

我页面上单选框的默认值设置为选中。我注意到,当我更改选择并重新加载页面时,检查会恢复为默认值。我想知道 javascript 中是否有办法以编程方式设置我的单选元素的值检查属性。

这是我的html

<body>
<TD><INPUT TYPE="radio" NAME="Performer" VALUE="Aitken"   >Aitken</TD>
  <TD><INPUT TYPE="radio" NAME="Performer" VALUE="Coltrane"  CHECKED>Coltrane</TD>
  <TD><INPUT TYPE="radio" NAME="Performer" VALUE="Julliard" >Julliard</TD>
  <TD><INPUT TYPE="radio" NAME="Performer" VALUE="Kronos"  >Kronos</TD>
  <TD><INPUT TYPE="radio" NAME="Performer" VALUE="Waits"  >Waits</TD>
<input type="submit" id="submit_button"name="sunmit">
</body>
4

3 回答 3

1

Html 本质上是无状态的。更改页面上某些内容的值绝对没有任何作用,除非您真的对它进行了某些操作。

为了保持此值,您必须将其发送回您的服务器(通过 AJAX 或传统的表单提交),并且不要使用硬编码值,而是使用您选择的动态语言。

您还可以使用本地存储来拥有特定于用户/机器的 javascript 实现。

于 2012-08-20T20:20:02.537 回答
0

您可以在每次有人选中/取消选中包含所有选中元素时设置一个 cookie,然后根据页面加载时的 cookie 数据重新检查它们。

但除非您知道自己在做什么,否则我不会推荐它,因为当您对表单执行“意外”操作时,您将危及可用性。

于 2012-08-20T20:19:19.427 回答
0

一旦您知道应该检查哪个按钮,使用 cookie 值或 localStorage 作为其他答案的建议,您确实可以使用 javascript 检查按钮。这是一个 jQuery 片段:

var valueToCheck = "Kronos";  // assume you have a known value like this one
$('input[name="Performer"][value="'+ valueToCheck +'"]').prop('checked', true);

如果您没有可用的 jQuery,您可以使用本机代码。每个输入元素都有一个value属性,单选按钮也有一个checked属性:

var buttons = document.getElementsByTagName('input'), button;
for (var i = 0; i < buttons.length; i += 1) {
    button = buttons[i];
    if (button.name === "Performer" && button.value === valueToCheck) {
        button.checked = true;
        break;
    }
}
于 2012-08-20T20:30:00.730 回答