0

私のページのラジオ ボックスのデフォルト値は 1 に設定されています。選択を変更してページをリロードすると、チェックがデフォルト値に戻ることに気付きました。ラジオ要素のチェック済みプロパティの値をプログラムで設定する方法が 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 値または 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 に答える
0

誰かがチェックされたすべての要素を含むチェック/チェックを外すたびに Cookie を設定し、ページの読み込み時に Cookie データに基づいてそれらを再チェックすることができます。

ただし、フォームで「予期しない」ことを行うと、使いやすさが損なわれるため、自分が何をしているのかを理解していない限り、お勧めしません。

于 2012-08-20T20:19:19.427 に答える