0

私はこれに少し困惑しています。私はこのhtmlを持っています -

<input type="radio" id="20577091" name="q_engine" value="20577091" style="position: absolute; opacity:0;" checked="checked" />

そしてこのJavaScript

var chosen = '';
len = document.quote_form.q_engine.length;

for (i = 0; i < len; i++) {
   if (document.quote_form.q_engine[i].checked) {
        chosen = document.quote_form.q_engine[i].value
   }
}

何らかの理由で検証されません。radio 要素が選択されていますが、送信時に (および選択されたアラート変数は空です。

ラベル付きの複数のラジオ ボタンを持つ別のフォームがあります。ラベルをクリックすると、ラジオが選択され、検証が機能します。

どんな助けでも大歓迎です。

ありがとう。

4

2 に答える 2

1

単一のラジオボタンには長さのプロパティがないため、機能させるには条件を追加する必要があります。

<html><body>

<form name="quote_form">
<!--Radio 1 : <input type="radio" id="20577090" name="q_engine" value="20577090" />-->
Radio 2 : <input type="radio" id="20577091" name="q_engine" value="20577091" checked="checked" />
</form>

<script type="text/javascript">
var chosen = '';

if (document.quote_form.q_engine.checked) {
    chosen = document.quote_form.q_engine.value
}
else {
    len = document.quote_form.q_engine.length;
    for (i = 0; i < len; i++) {
        if (document.quote_form.q_engine[i].checked) {
            chosen = document.quote_form.q_engine[i].value
        }
    }
}
alert(chosen);
</script>

</body>
</html>

上記のコードは、ラジオ ボタンが 1 つでも複数でも機能します。

詳細については、こちらをご覧ください - http://www.falsepositives.com/index.php/2007/10/16/javascript-for-a-single-element-radio-button-list/

于 2013-11-02T14:21:33.320 に答える
0

これは、同じコードを使用して Google Chrome で機能しました。

<html>
  <head>
</head>
<body>

<form name="quote_form">
<input type="radio" id="20577090" name="q_engine" value="20577090" style="position: absolute; opacity:0;" />
<input type="radio" id="20577091" name="q_engine" value="20577091" style="position: absolute; opacity:0;" checked="checked" />
</form>

<script>
var chosen = '';
len = document.quote_form.q_engine.length;

var chosen = '';
len = document.quote_form.q_engine.length;

for (i = 0; i < len; i++) {
   if (document.quote_form.q_engine[i].checked) {
        chosen = document.quote_form.q_engine[i].value
   }
}
alert(chosen);
</script>

</body>
</html>

スクリプトはフォームの後に配置されます。

于 2013-11-02T12:33:33.560 に答える