这段 javascript 代码在firefox浏览器下错误,IE下可以的,怎么改正后都支持?
<script language="javascript">
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="提交"></td>
</tr>
</table></form>
追问:还有一个shu="1"出错,用什么html自带属性替换shu呢?谢谢!
这句改成测试:
alert("您当前已选购:"+str+"总价为: "+sum+" 元 shu值:"+shum+" ");
shu得不到?
答案:<script language="javascript">
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.alt*document.getElementById('b'+n).value);
str += obj.value+"×"+document.getElementById('b'+n).value+document.getElementById('b'+n).title+",";
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' title="月" 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)" alt="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' title="年" 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)" alt="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="提交"></td>
</tr>
</table></form>
将里面的“unit”更改为“title”,“dingid”更改为“alt”。尽量用html自带属性。我这里IE和火狐测试通过。
上一个:javascript function(event),为什么在function括号写个event啊,不明白
下一个:javascript 读取cookies的问题