我对此感到有点困惑。我有这个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,它是空的。
我有另一个带有多个带标签的单选按钮的表单。如果单击标签,则选择无线电并进行验证。
任何帮助都将不胜感激。
感谢。
答案 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>
脚本放在表单之后。