我有一些来自php循环的脚本
<?php
for($y=1;$y<=5;$y++){
echo"
<script>
function check_$y(val)
{
if(val == '3'){
document.getElementById('sbg_$y').disabled=false;
}else{
document.getElementById('sbg_$y').disabled=true;
}
}
</script>
<select name='as_$y' id='c_$y' onchange='check_$y(this.value)'>
<option value='talent'>talent</option>
<option value='produser'>produser</option>
<option value='writer'>penulis</option>
<option value='actor'>actor</option>
</select>
<input size='20' id='sbg_$y' type='text' name='sebagai_$y' disabled>
";//end of echo
}//end of loop
?>
我想如果演员选择id='sbg_$x'
启用,但我不知道为什么该功能不起作用我猜它是由php循环引起的,
答案 0 :(得分:0)
您已将所有值都指定为文本...因此您必须与文本匹配
这样做......
function check_$y(val){
if(val == 'actor'){
document.getElementById('sbg_$y').disabled=false;
}else{
document.getElementById('sbg_$y').disabled=true;
}
}
或者您可以匹配所选索引...
<select name='as_$y' id='c_$y' onchange='check_$y(this)'>
<option value='talent'>talent</option>
<option value='produser'>produser</option>
<option value='writer'>penulis</option>
<option value='actor'>actor</option>
</select>
function check_$y(selectBox){
if(selectBox.selectedIndex == '3'){
document.getElementById('sbg_$y').disabled=false;
}else{
document.getElementById('sbg_$y').disabled=true;
}
}
答案 1 :(得分:0)
你必须在循环之前放置脚本。并且检查值等于您的选项值 不是数字
<script>
function check_$y(val)
{
if(val == 'actor'){
document.getElementById('sbg_$y').disabled=false;
}else{
document.getElementById('sbg_$y').disabled=true;
}
}
</script>
然后开始循环
<?php
for($y=1;$y<=5;$y++){
<select name='as_$y' id='c_$y' onchange='check_$y(this.value)'>
<option value='talent'>talent</option>
<option value='produser'>produser</option>
<option value='writer'>penulis</option>
<option value='actor'>actor</option>
</select>
<input size='20' id='sbg_$y' type='text' name='sebagai_$y' disabled>
";//end of echo
}
?>
}