当我把onClick
放入<select>
时,脚本可以工作,但当我把它放入option
时,它不工作!
这是HTML select
脚本:
<select name="<?php echo $pos; ?>" id="<?php echo $pos; ?>">
<option value="0">0</option>
<option onClick="ship('1','<?php echo $pos; ?>');" value="1">1</option>
<option onClick="ship('2','<?php echo $pos; ?>');" value="2">2</option>
<option onClick="ship('3','<?php echo $pos; ?>');" value="3">3</option>
<option onClick="ship('4','<?php echo $pos; ?>');" value="4">4</option>
</select>
这里是JavaScript:
<script>
function ship(num, pos) {
if (num == 0){
document.getElementById(pos).style.backgroundColor="white";
}
if (num == 1){
document.getElementById(pos).style.backgroundColor="red";
}
if (num == 2){
document.getElementById(pos).style.backgroundColor="green";
}
if (num == 3){
document.getElementById(pos).style.backgroundColor="blue";
}
if (num == 4){
document.getElementById(pos).style.backgroundColor="yellow";
}
}
</script>
onclick
在大多数浏览器上都不起作用(或者可能没有),相反,您可以根据其value
属性监听select和switch的更改事件。
你可以做:
var color = [
"white",
"red",
"green",
"blue",
"yellow"];
window.onload = function () {
document.getElementById('selectId').onchange = function () {
this.style.backgroundColor = color[this.value];
}
}
演示
对于一个选项,onClick有时可能不起作用。所以最好将onChange函数放在select标记中,并传递所选子项的值。
您应该在select元素上使用onChange事件,如:
<select onChange="ship(this.selectedIndex, this.options[this.selectedIndex].value);
在这种情况下,ship函数获取所选选项的索引和值。因此,在您的情况下,将选项更改为
<option value="<?php echo $pos; ?>">1</option>
可能也需要。编辑:只得到一半的问题。请参阅PSLs的答案以获得更好的解决方案:)