<script language="javascript">
function checkForm()
{
 if (document.AddUserForm.guo.value=="")
 {
  alert("请选择至少一个购买选项!\n\n(点击数量后面的圆框即可选择)");
 }
else if (document.AddUserForm.shu.value=="")
 {
  alert("请选择至少一个购买选项!!\n\n(点击数量后面的圆框即可选择)");
 }
 else if (document.AddUserForm.a0.value==""||document.AddUserForm.a0.value=="0"||document.AddUserForm.a0.value=="00")
 {
  alert("选择购买月卡时月份不为能0!");
 }
 else if (document.AddUserForm.a1.value==""||document.AddUserForm.a1.value=="0"||document.AddUserForm.a1.value=="00"||document.AddUserForm.a1.value=="000")
 {
  alert("选择购买年卡时年限不为能0!");
 }
 else {
  document.AddUserForm.submit();
 }
}
function dataCal(){
var shum=0;
var sum=0;
var str = "";
var obj=document.getElementsByName("items[]"); //取得页面所有的items复选框对象
for(var i=0;i<obj.length;i++)
{
   if(!obj[i].checked)
      continue;      //如果没有选中,则执行下一次
   shum+=parseFloat(obj[i].shu);   //如果被选中的话,则累加求和
   sum+=parseFloat(obj[i].dingid*document.getElementById('b'+i).value);   //如果被选中的话,则累加求和
       str += obj[i].value+"×"+document.getElementById('b'+i).value+document.getElementById('b'+i).unit+",";
}
AddUserForm.shu.value=+shum;
AddUserForm.jieguo.value=+sum; 
AddUserForm.guo.value=str;
       alert("您当前已选购:"+str+"总价为: "+sum+" 元");
}
</script>
<form name=AddUserForm method="POST" action="form.asp">
<table border="1" align="center" cellpadding="3" width="100%">
<tr bgColor="#dee3e7">
<td align="center">选择类型</td>
<td align="center">金额</td>
<td align="center">数量</td>
<td align="center">选择</td>
</tr>
<tr>
<td align="center">月卡</td>
<td align="center">100元/月</td>
<td align="center"><select size="1" name="a0" id='b0' unit="月">
<option value="1" selected>1 月</option>
<option value="2">2 月</option>
<option value="3">3 月</option>
<option value="4">4 月</option>
<option value="5">5 月</option>
<option value="6">6 月</option>
<option value="7">7 月</option>
<option value="8">8 月</option>
<option value="9">9 月</option>
<option value="10">10月</option>
<option value="11">11月</option>
</select></td>
<td align="center"><input type="radio" value="购买月卡" name="items[]" onclick="dataCal(this,'b0')" dingid="100" shu="1"></td>
</tr>
<tr>
<td align="center">年卡</td>
<td align="center">900元/年</td>
<td align="center"><select size="1" name="a1" id='b1' unit="年">
<option value="1" selected>1 年</option>
<option value="2">2 年</option>
<option value="3">3 年</option>
<option value="5">5 年</option>
<option value="10">10年</option>
<option value="20">20年</option>
</select></td>
<td align="center"><input type="radio" value="购买年卡" name="items[]" onclick="dataCal(this,'b1')" dingid="900" shu="2"></td>
</tr>
<tr>
<td align="center" colspan="4"><input type="hidden" name="jieguo" value="0" ><input type="hidden" name="shu" value="" ><input type="hidden" name="guo" value=""><input type="hidden" name="save" value=1><input type="submit" value="提交" onclick="Javascripts:checkForm();return false;"></td>
</tr>
</table></form>
//以上代码,如果先选择 数量 ,再点击后面的 单选 框,是正确的。//但如果先点击后面的 单选 框 ,后重新选择 数量 ,那么就错误的,提交后记录的还是重选择数量之前的选择的数量。//问?怎么可以即使先点击了后面的 单选 框,再点击了重新选择数量,后面已选择的 单选框 自动 取消选择 ?!
请高手帮改正一下代码,谢谢!

解决方案 »

  1.   


    <script language="javascript">
    function checkForm()
    {
     if (document.AddUserForm.guo.value=="")
     {
      alert("请选择至少一个购买选项!\n\n(点击数量后面的圆框即可选择)");
     }
    else if (document.AddUserForm.shu.value=="")
     {
      alert("请选择至少一个购买选项!!\n\n(点击数量后面的圆框即可选择)");
     }
     else if (document.AddUserForm.a0.value==""||document.AddUserForm.a0.value=="0"||document.AddUserForm.a0.value=="00")
     {
      alert("选择购买月卡时月份不为能0!");
     }
     else if (document.AddUserForm.a1.value==""||document.AddUserForm.a1.value=="0"||document.AddUserForm.a1.value=="00"||document.AddUserForm.a1.value=="000")
     {
      alert("选择购买年卡时年限不为能0!");
     }
     else {
      document.AddUserForm.submit();
     }
    }
    function dataCal(n){
    var shum=0;
    var sum=0;
    var str = "";
    var obj = document.AddUserForm.elements["items[]"][n]
    obj.checked = true;
    shum+=parseFloat(obj.shu);
    sum+=parseFloat(obj.dingid*document.getElementById('b'+n).value);
    str += obj.value+"×"+document.getElementById('b'+n).value+document.getElementById('b'+n).unit+",";
    document.AddUserForm.shu.value=+shum;
    document.AddUserForm.jieguo.value=+sum;  
    document.AddUserForm.guo.value=str;
    alert("您当前已选购:"+str+"总价为: "+sum+" 元");
    }
    </script>
    <form name=AddUserForm method="POST" action="form.asp">
    <table border="1" align="center" cellpadding="3" width="100%">
    <tr bgColor="#dee3e7">
    <td align="center">选择类型</td>
    <td align="center">金额</td>
    <td align="center">数量</td>
    <td align="center">选择</td>
    </tr>
    <tr>
    <td align="center">月卡</td>
    <td align="center">100元/月</td>
    <td align="center"><select size="1" name="a0" id='b0' unit="月" onchange="dataCal(0);">
    <option value="1" selected>1 月</option>
    <option value="2">2 月</option>
    <option value="3">3 月</option>
    <option value="4">4 月</option>
    <option value="5">5 月</option>
    <option value="6">6 月</option>
    <option value="7">7 月</option>
    <option value="8">8 月</option>
    <option value="9">9 月</option>
    <option value="10">10月</option>
    <option value="11">11月</option>
    </select></td>
    <td align="center"><input type="radio" value="购买月卡" name="items[]" onclick="dataCal(0)" dingid="100" shu="1"></td>
    </tr>
    <tr>
    <td align="center">年卡</td>
    <td align="center">900元/年</td>
    <td align="center"><select size="1" name="a1" id='b1' unit="年" onchange="dataCal(1);">
    <option value="1" selected>1 年</option>
    <option value="2">2 年</option>
    <option value="3">3 年</option>
    <option value="5">5 年</option>
    <option value="10">10年</option>
    <option value="20">20年</option>
    </select></td>
    <td align="center"><input type="radio" value="购买年卡" name="items[]" onclick="dataCal(1)" dingid="900" shu="2"></td>
    </tr>
    <tr>
    <td align="center" colspan="4"><input type="hidden" name="jieguo" value="0" ><input type="hidden" name="shu" value="" ><input type="hidden" name="guo" value=""><input type="hidden" name="save" value=1><input type="submit" value="提交" onclick="Javascripts:checkForm();return false;"></td>
    </tr>
    </table></form>
      

  2.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    </head><body>
    <script type="text/javascript">
    function checkForm()
    {
     if (document.AddUserForm.guo.value=="")
     {
      alert("请选择至少一个购买选项!\n\n(点击数量后面的圆框即可选择)");
     }
    else if (document.AddUserForm.shu.value=="")
     {
      alert("请选择至少一个购买选项!!\n\n(点击数量后面的圆框即可选择)");
     }
     else if (document.AddUserForm.a0.value==""||document.AddUserForm.a0.value=="0"||document.AddUserForm.a0.value=="00")
     {
      alert("选择购买月卡时月份不为能0!");
     }
     else if (document.AddUserForm.a1.value==""||document.AddUserForm.a1.value=="0"||document.AddUserForm.a1.value=="00"||document.AddUserForm.a1.value=="000")
     {
      alert("选择购买年卡时年限不为能0!");
     }
     else {
      document.AddUserForm.submit();
     }
    }
    function dataCal(){
    var shum=0;
    var sum=0;
    var str = "";
    var obj=document.getElementsByName("items[]"); //取得页面所有的items复选框对象
    for(var i=0;i<obj.length;i++)
    {
      if(!obj[i].checked)
      continue; //如果没有选中,则执行下一次
      shum+=parseFloat(obj[i].shu); //如果被选中的话,则累加求和
      sum+=parseFloat(obj[i].dingid*document.getElementById('b'+i).value); //如果被选中的话,则累加求和
      str += obj[i].value+"×"+document.getElementById('b'+i).value+document.getElementById('b'+i).unit+",";
    }
    AddUserForm.shu.value=+shum;
    AddUserForm.jieguo.value=+sum; 
    AddUserForm.guo.value=str;
      alert("您当前已选购:"+str+"总价为: "+sum+" 元");
    }function cancelChecked(){
       var obj=document.getElementsByName("items[]"); //取得页面所有的items复选框对象
       for(var i=0;i<obj.length;i++) {
          if(obj[i].checked) obj[i].checked = false;
       }
    }
    </script>
    <form name=AddUserForm method="POST" action="form.asp">
    <table border="1" align="center" cellpadding="3" width="100%">
    <tr bgColor="#dee3e7">
    <td align="center">选择类型</td>
    <td align="center">金额</td>
    <td align="center">数量</td>
    <td align="center">选择</td>
    </tr>
    <tr>
    <td align="center">月卡</td>
    <td align="center">100元/月</td>
    <td align="center"><select size="1" name="a0" id='b0' unit="月" onchange="cancelChecked()">
    <option value="1" selected>1 月</option>
    <option value="2">2 月</option>
    <option value="3">3 月</option>
    <option value="4">4 月</option>
    <option value="5">5 月</option>
    <option value="6">6 月</option>
    <option value="7">7 月</option>
    <option value="8">8 月</option>
    <option value="9">9 月</option>
    <option value="10">10月</option>
    <option value="11">11月</option>
    </select></td>
    <td align="center"><input type="radio" value="购买月卡" name="items[]" onclick="dataCal(this,'b0')" dingid="100" shu="1"></td>
    </tr>
    <tr>
    <td align="center">年卡</td>
    <td align="center">900元/年</td>
    <td align="center"><select size="1" name="a1" id='b1' unit="年" onchange="cancelChecked()">
    <option value="1" selected>1 年</option>
    <option value="2">2 年</option>
    <option value="3">3 年</option>
    <option value="5">5 年</option>
    <option value="10">10年</option>
    <option value="20">20年</option>
    </select></td>
    <td align="center"><input type="radio" value="购买年卡" name="items[]" onclick="dataCal(this,'b1')" dingid="900" shu="2"></td>
    </tr>
    <tr>
    <td align="center" colspan="4"><input type="hidden" name="jieguo" value="0" ><input type="hidden" name="shu" value="" ><input type="hidden" name="guo" value=""><input type="hidden" name="save" value=1><input type="submit" value="提交" onclick="Javascripts:checkForm();return false;"></td>
    </tr>
    </table></form>
    </body>
    </html>这样?