为什么check =“已检查”未在js中验证?

时间:2013-11-02 12:16:46

标签: javascript html validation

我对此感到有点困惑。我有这个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
   }
}

由于某种原因,它不会验证。我选择了无线电元素,但是在提交时(选择了alert var,它是空的。

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

任何帮助都将不胜感激。

感谢。

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:0)

这在谷歌浏览器中使用相同的代码:

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

脚本放在表单之后。