日期:2014-05-16  浏览次数:20454 次

请教,利用JS将Select的Value传递给某个input的问题
如题,请各位帮帮忙,就是一个select,点击以后将值传递给某个隐藏input,JS函数是这么写的
	
var hdrewardid = "commentscorestr";
function setreward(rewardid,value) {
  var hdreward = document.getElementById(hdrewardid);
if(hdreward.value.indexOf("@" + rewardid +"@") > -1 ) {
var reg = new RegExp("@" + rewardid +"@\\d");
hdreward.value = hdreward.value.replace(reg,"@" + rewardid +"@" + value);
} else {
hdreward.value += "@" + rewardid +"@" + value;
}
return false;
}

其中,传递后input的value格式是这个样子的@11@5,11是rewardid,5就是value。
我再调用函数的时候是

<input name="commentscorestr" id="commentscorestr" type="hidden" />
<select name="score" id="score">
<option value="-1" >--请选择--</option>
<option value="5" id="reward5_11" onchange="return setreward(11,5);">非常好(5)</option>
<option value="4" id="reward4_11" onchange="return setreward(11,4);">很好(4)</option>
<option value="3" id="reward3_11" onchange="return setreward(11,3);">好(3)</option>
<option value="2" id="reward2_11" onchange="return setreward(11,2);">一般(2)</option>
<option value="1" id="reward2_11" onchange="return setreward(11,1);">差(1)</option>
</select>

但是为何commentscorestr一直获取不到值?麻烦帮忙解答一下,先谢过了。
------解决方案--------------------
<input name="commentscorestr" id="commentscorestr" type="hidden" />
<select name="score" id="score" onchange="return setreward(11,event.target.selectedIndex);">
<option value="-1" >--请选择--</option>
<option value="5" id="reward5_11" >非常好(5)</option>
<option value="4" id="reward4_11" >很好(4)</option>
<option value="3" id="reward3_11" >好(3)</option>
<option value="2" id="reward2_11" >一般(2)</option>
<option value="1" id="reward2_11" >差(1)</option>
</select>

<script>
var hdrewardid = "commentscorestr";
function setreward(rewardid,value) {
if(value===0){
return;
}
  var hdreward = document.getElementById(hdrewardid);
    if(hdreward.value.indexOf("@" + rewardid +"@") > -1 ) {
        var reg = new RegExp("@" + rewardid +"@\\d");
        hdreward.value = hdreward.value.replace(reg,"@" + rewardid +"@" + value);
    } else {
        hdreward.value += "@" + rewardid +"@" + value;
    }
return false;
}

</script>

------解决方案--------------------
<select name="score" id="score" onchange="setreward(11,this.value);">
<option value="-1" >--请选择--</option>
<option value="5" id="reward5_11" >非常好(5)</option>
<option value="4" id="reward4_11" >很好(4)</opt