在下面的脚本中,如何仅获取已选中的单选按钮和复选框的值,而不是所有选项(如果选中了单选按钮和复选框)。
现在它给了我所有的值,无论是否选中,以及提交按钮(我不需要)。
我该怎么做?会有更多的复选框和单选按钮,我这个问题只使用了2套。
<html>
<head>
<script type="text/javascript">
function DisplayFormValues()
{
var str = '';
var elem = document.getElementById('frmMain').elements;
for(var i = 0; i < elem.length; i++)
{
str += elem[i].value+"<br>";
}
document.getElementById('lblValues').innerHTML = str;
}
</script>
</head>
<body>
<form id="frmMain" name="frmMain">
<INPUT TYPE="radio" NAME="r1" value="r1a">
<INPUT TYPE="radio" NAME="r1" value="r1b">
<INPUT TYPE="radio" NAME="r1" value="r1c">
<INPUT TYPE="checkbox" NAME="c1" value="c1a">
<INPUT TYPE="checkbox" NAME="c1" value="c1b">
<INPUT TYPE="checkbox" NAME="c1" value="c1c">
<input type="button" value="Test" onclick="DisplayFormValues();" />
</form>
<hr />
<div id="lblValues"></div>
</body>
</html>
答案 0 :(得分:1)
添加以下测试:
if(elem[i].checked)
str += elem[i].value+"<br>";
此外,如果您使用jQuery,整个脚本甚至更简单:
function DisplayFormValues(){
$("input:checkbox:checked").add("input:radio:checked")
.each(function(){
$("div#lblValues").append(this.value + "<br>");
});
}