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
   }
}

由于某种原因,它不会验证。我选择了单选元素,但是在提交时(并且选择了警报变量,它是空的。

我有另一个带有多个带标签的单选按钮的表单。如果单击标签,则选择单选并进行验证。

任何帮助,将不胜感激。

谢谢。

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>

无论您有一个单选按钮还是多个单选按钮,上面的代码都可以使用!

您可以在此处阅读更多信息 - 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 回答