解决方案 »
- 导航上的点击相应的页面 上面的相应CSS会变怎么做
- js控制文本框A即时显示文本框B所填写的内容
- jqurey treeview在asp.net里如何将后台sqlserver的数据在页面加载时就动态绑定并显示
- Javascript高手进,5000行代码的问题,极限挑战CSDN高手!
- 哪位可以提供个IE、FF通用的颜色选择器,不胜感激200分
- 高分求解:指定位置有一个表格,如何让他在点击特定按钮时才显示!
- 在javascript中怎样调用asp中自定义带参数的函数
- 求一段判断日期先后的代码
- 一个白痴式却又解决不了的问题
- web前端图片鼠标点击纪录信息
- 数组查询无法清空
- 求教一个简单地JQ问题,如何获取某元素下没有class属性的子元素?
<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>
第一种:按你的思路使用setreward函数进行控制
<script type="text/javascript">
function setreward(obj) {
document.getElementById('commentscorestr').value = obj.value==-1 ? '' : '@11@'+obj.value;
}
</script><input name="commentscorestr" id="commentscorestr" type="text" />
<select name="score" id="score" onchange="setreward(this)">
<option value="-1" >--请选择--</option>
<option value="5">非常好(5)</option>
<option value="4">很好(4)</option>
<option value="3">好(3)</option>
<option value="2">一般(2)</option>
<option value="1">差(1)</option>
</select>
第二种:不使用独立的function
<input name="commentscorestr" id="commentscorestr" type="text" />
<select name="score" id="score" onchange="document.getElementById('commentscorestr').value=this.value==-1?'':'@11@'+this.value">
<option value="-1" >--请选择--</option>
<option value="5">非常好(5)</option>
<option value="4">很好(4)</option>
<option value="3">好(3)</option>
<option value="2">一般(2)</option>
<option value="1">差(1)</option>
</select>PS:不知道你什么样的需求,需要这样子去做.你最后要处理数据的时候,取到它的值,然后 ['@11@'+值] 去组合一下不就行了.为什么还要onchange中这么转一下?
<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 type="text/javascript">
function getScoreList(obj) {
//前提将所有的待评分内容置于div[id=scoreList]之内
var selList = document.getElementById('scoreList').getElementsByTagName('select'),//获取所有待评分的select集合
i = 0,
j = selList.length,
id = 0,
score = [];
for(;i<j;){
//在select中使用自定义的属性score-for来保存其对应的ID
id = selList[i].getAttribute('score-for');
//获取评分结果
score.push('@'+id+'@'+selList[i++].value);
};
//如需转化为字符串使用:var _score=score.join(',');即可:@1@评分值,@2@评分值……@n@评分值 alert(score.join(','))
}
</script><div id="scoreList">
<h4>项目一评分:</h4>
<select score-for="1">
<option value="-1" >--请选择--</option>
<option value="5">非常好(5)</option>
<option value="4">很好(4)</option>
<option value="3">好(3)</option>
<option value="2">一般(2)</option>
<option value="1">差(1)</option>
</select>
<h4>项目二评分:</h4>
<select score-for="2">
<option value="-1" >--请选择--</option>
<option value="5">非常好(5)</option>
<option value="4">很好(4)</option>
<option value="3">好(3)</option>
<option value="2">一般(2)</option>
<option value="1">差(1)</option>
</select>
<h4>项目三评分:</h4>
<select score-for="3">
<option value="-1" >--请选择--</option>
<option value="5">非常好(5)</option>
<option value="4">很好(4)</option>
<option value="3">好(3)</option>
<option value="2">一般(2)</option>
<option value="1">差(1)</option>
</select>
<br />
<input type="button" value="测试取值" onclick="getScoreList()"/>
</div>