打印所选单选按钮和复选框的值,并排除提交按钮

时间:2010-10-26 01:54:58

标签: javascript

在下面的脚本中,如何仅获取已选中的单选按钮和复选框的值,而不是所有选项(如果选中了单选按钮和复选框)。

现在它给了我所有的值,无论是否选中,以及提交按钮(我不需要)。

我该怎么做?会有更多的复选框和单选按钮,我这个问题只使用了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>

1 个答案:

答案 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>");
  });
}