Ray-Yan 2016-10-18 03:41 采纳率: 100%
浏览 1359
已采纳

在HTML代码中间执行JS问题

如下代码所示:

 <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>

本段代码是通过循环打印每一道单选题,并通过JS获得答案与正确答案进行比较累加分值。可是代码是有问题,即JS代码不执行。
如果将JS放到最后就无法实现循环比较的功能了,请问各位大侠有没有解决办法,就是JS还在循环里,能够正确获取值并累加分数。谢谢!麻烦给出代码提示。

  • 写回答

7条回答 默认 最新

  • Go 旅城通票 2016-10-18 04:01
    关注

    你的c:forEach到哪结束?不会是

     </script>
        <br></div>
    

    这里吧,这样会输出多个js块了,并且id重复了,js文件文件和内置代码不要公用一个script块,要不外部js无法导入,而且jquery导入一次就行了,放入循环外

    var rg = $("#rg").val();只能获取到第一个出现的控件,无法操作后续出现的控件,id搞唯一来,连接上题目的id或者${status.index+1}那个东东

    代码里面也要加上

     <input type="hidden" id="sum" name="sum">
    <input type="hidden" id="rsum" value="0">
    
    <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
        <c:foreach items="${radioTest}" var="radioTest" varstatus="status">
            <div id="r${status.index+1}">
                ${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${status.index+1}" value="${radioTest.answer}">
                <input type="hidden" id="rg${status.index+1}" value="${paperInfo.rs}">
                <br>
                <script>
                    var r_answer = $('#r${status.index+1} input[name="choice${status.index+1}"]:checked ').val();
                    var br_answer = $("#ra${status.index+1}").val();
                    var rg = $("#rg${status.index+1}").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>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大