如下代码所示:
<input type="hidden" id="sum" name="sum">
<input type="hidden" id="rsum" value="0">
<c:forEach items="${radioTest}" var="radioTest" varStatus="status">
<div id="r">
${status.index+1}.<font color="orange">(单选,${paperInfo.rs}分)</font>${radioTest.body}
<br><input type="radio" name="choice${status.index+1}" value="A"> A <font>${radioTest.a}</font>
<br><input type="radio" name="choice${status.index+1}" value="B"> B <font>${radioTest.b}</font>
<br><input type="radio" name="choice${status.index+1}" value="C"> C <font>${radioTest.c}</font>
<br><input type="radio" name="choice${status.index+1}" value="D"> D <font>${radioTest.d}</font>
<input type="hidden" id="ra" value="${radioTest.answer}">
<input type="hidden" id="rg" value="${paperInfo.rs}">
<br>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.js">
var r_answer = $('#r input[name="choice"]:checked ').val();
var br_answer = $("#ra").val();
var rg = $("#rg").val();
alert(r_answer);
var rsum = $("#rsum").val();
if( br_answer==r_answer){
rsum = rsum+rg;
}
//$("#sum").val("100");
$("#sum").val(rsum);
</script>
<br></div>
我测试发现,就算我写死sum的值,也不能赋值,请大家帮忙看下,哪里有问题么?
麻烦指出,多谢!
$("#sum").attr("value","1");
加载完成再写js,把你赋值的js写在这里面代码如下
$(function(){
//这里写你的赋值js即可
});
你的html 内容没有加载完,执行js 操作dom的时候,会选不到那个对象,所以不行,你按F12控制台(console)会看到报错信息。
解决方法把js 放在最后面,或者放在
$(function(){
//执行,会等加载完再执行
})
你最好不要直接在JS标签下写JS,将其放到$(function(){})内,或者function中,另外看一下id是否重复
你可以看看你代码的源码,控制台报错情况等。不建议这样写
var r_answer = $('#r input[name="choice"]:checked ').val(); var br_answer = $("#ra").val(); var rg = $("#rg").val(); alert(r_answer); var rsum = $("#rsum").val(); if( br_answer==r_answer){ rsum = rsum+rg; } //$("#sum").val("100"); $("#sum").val(rsum);<br></div>求你了,我看着蓝瘦,你再写个script标签吧?不要又引又写的。。。求你重新摆个位置?
我的妈。。。这页面做的,懒到家了。。。能不能再写个《script》标签在写js?能不能不要把js包在div里???你是有多懒。。。
而且。。。你这个div外层有叠代循环。。。你把js也叠代了。。。nb