各位高手好!我刚刚接触到web开发,很多简单的问题都不太清楚,希望大家帮我看看下面的问题,这是一个五星评分的部分代码,当点击相应的五星时,我希望可以将对应的分值(1、2、3、4、5)传给我之前定义的一个变量ratevalue,然后通过表单将评分的全部信息(包括用户id,评论的文章id,和评分值)都传给服务器。
    我需要解决的问题是,不知道如何将对应的分值(1、2、3、4、5)传给ratevalue,请各位高手指点!    小妹在此先谢谢各位了!    <FORM name="addTagForm"  method="post" action="addTag.do" >
    <span id="rateStatus">评分...</span>
    <span id="ratingSaved">评分结果!</span> 
    <div id="rateMe" title="评分...">
    <a onclick="rateIt(this)" id="_1"  value=“1” title="较差" onmouseover="rating(this)" onmouseout="off(this)"></a>
    <a onclick="rateIt(this)" id="_2"  value=“2” title="还可以" onmouseover="rating(this)" onmouseout="off(this)"></a>
    <a onclick="rateIt(this)" id="_3"  value=“3” title="好" onmouseover="rating(this)" onmouseout="off(this)"></a>
    <a onclick="rateIt(this)" id="_4"  value=“4” value=“1”title="相当好" onmouseover="rating(this)" onmouseout="off(this)"></a>
    <a onclick="rateIt(this)" id="_5"  value=“5” title="好极了" onmouseover="rating(this)" onmouseout="off(this)"></a>
    </div>
 
    <c:out value="${ratevalue}"/>
    <input name="userid" type=hidden value='<c:out value="${sessionScope.id}"/>'>
    <input name="paperid" type=hidden value='<c:out value="${bookinfo.id}"/>'>
    <input name="rate" type=hidden  value='<c:out value="${retevalue}"/>'>
    <br>
    <br>
    <br>
    <input name="updateTag" type="submit" value="保存本次评论" ></td>
    </FORM>

解决方案 »

  1.   

    <a onclick="rateIt(this)" id="_1" value=“1” title="较差" onmouseover="rating(this)" 以这行为例,你注意到你用到了中文引号没?这里可能引发错误。""还是“”?
      

  2.   

    先设个隐藏变量放到网页form中
    <input name="ratevalue" type=hidden value=''>
    然后在js里面对此变量赋值:rateIt()就是提交的那个js方法吧,你在这个方法中function rateIt(ru) {
      with(document.forms[0]){
          ratevalue.value=ru;
        }
        
        submit();
        return true;
      }
      

  3.   


    我按照您的指点改完代码如下:
    <FORM name="addTagForm"  method="post" action="addTag.do" >
        <c:set value="0" var="ratevalue" />
        <span id="rateStatus">评分...</span>
        <span id="ratingSaved">评分结果!</span> 
        <div id="rateMe" title="评分...">
        <a onclick="rateIt(this)" id="_1"  value="1" title="较差" onmouseover="rating(this)" onmouseout="off(this)"></a>
        <a onclick="rateIt(this)" id="_2"  value="2" title="还可以" onmouseover="rating(this)" onmouseout="off(this)"></a>
        <a onclick="rateIt(this)" id="_3"  value="3" title="好" onmouseover="rating(this)" onmouseout="off(this)"></a>
        <a onclick="rateIt(this)" id="_4"  value="4" title="相当好" onmouseover="rating(this)" onmouseout="off(this)"></a>
        <a onclick="rateIt(this)" id="_5"  value="5" title="好极了" onmouseover="rating(this)" onmouseout="off(this)"></a>
        </div>
     
        <c:out value="${ratevalue}"/>

        <input name="userid" type=hidden value='<c:out value="${sessionScope.id}"/>'>
        <input name="paperid" type=hidden value='<c:out value="${bookinfo.id}"/>'>
        <input name="rate" type=hidden  value='<c:out value="${ratevalue}"/>'>
        <br>
        <br>
        <br>
        <input name="updateTag" type="submit" value="保存本次评论" ></td>
        </FORM>  JS代码中的 rateIt()如下:
    function rateIt(me){
    if(!rated){
    document.getElementById("rateStatus").innerHTML = me.title;//document.getElementById("ratingSaved").innerHTML + " :: "+
    preSet = me;
    //rated=1;  //设为1以后,就变成了最终结果,不能再修改评分结果
    sendRate(me);
    rating(me);
    with(document.forms[0])
         {
      ratevalue.value=me;
      }
        submit();
        return true;
      
    }
    }
    改成这样后,经过<c:out value="${ratevalue}"/> 应该显示我评分的分数,可是怎么还是显示为0呢?请您指点一下把,谢谢了
      

  4.   

    ratevalue.value=me.value;
    试试。。
      

  5.   

    你这个me是什么,me应该传的是<a onclick="rateIt(this)" id="_1" value="1" title="较差" onmouseover="rating(this)" onmouseout="off(this)"></a>这个按钮的value值,你传的是this,用this获取value可以的话也行
      

  6.   

    请问我该怎么写呢,是不是该ratevalue=this.value,将这句话写在<c:out value="${ratevalue}"/>的前面,其他地方不变?
    刚刚接触到这个东西,问题太白痴了,希望不要笑话我