Javascript 选中所选值并将输入字段更改为只读

Javascript 选中所选值并将输入字段更改为只读,javascript,html,Javascript,Html,当在下面的选择列表edit_type中选择选项rond时,我需要将输入字段edit_maat_2更改为readonly,但什么也没有发生 这是我的代码: <select class="form-control" id="edit_type['.$i.']" name="edit_type" onclick="show_dim(this, '.$i.')"> <option ';if($row_table_1['type'] == 'rond') { echo 'selected

当在下面的选择列表
edit_type
中选择选项
rond
时,我需要将输入字段
edit_maat_2
更改为
readonly
,但什么也没有发生

这是我的代码:

<select class="form-control" id="edit_type['.$i.']" name="edit_type" onclick="show_dim(this, '.$i.')">
<option ';if($row_table_1['type'] == 'rond') { echo 'selected="selected"';} echo 'value="as">Staf rond</option>
<option ';if($row_table_1['type'] == 'buis') { echo 'selected="selected"';} echo 'value="buis">Buis</option>
</select>

<input type="number" class="form-control" id="edit_maat_2['.$i.']" name="edit_maat_2" value="'.$row_table_1['maat_2'].'">

<script type="text/javascript">
function show_dim(selectVeld, nr)
{
    if(document.getElementById('edit_type['+nr+']').value == 'rond') {
        document.getElementById('edit_maat_2['+nr+']').attr('readonly','readonly'); }
}
</script>

斯塔夫隆德
别斯
功能显示尺寸(选择级别、编号)
{
if(document.getElementById('edit_type['+nr+']'))。value=='rond'){
document.getElementById('edit_maat_2['+nr+']').attr('readonly','readonly');}
}

$i
已生成且功能正常

当我检查这是控制台模式时,我看到这个错误:
Uncaught ReferenceError:e未定义
我没有使用变量
e
any wehere(?)


有什么建议吗?

有几个问题,很多打字错误

  • 你有“as”和“buis”的价值观-没有“rond”
  • .attr是jQuery,而不是DOM
这可能就是你想要的

函数setAccess(){
var id=this.id.replace(“编辑类型”、“编辑类型2”),
字段=document.getElementById(id);
如果(this.value==“as”){
field.setAttribute('readonly','readonly');
}否则{
field.removeAttribute('readonly');
}
}
addEventListener(“加载”,函数(){
document.querySelectorAll(“[id^=edit\u type]”)。forEach(函数(sel){
sel.addEventListener(“更改”,setAccess);
//在PHP设置所选属性的情况下初始化字段
如果(文档中的“createEvent”){
var evt=document.createEvent(“HTMLEvents”);
evt.initEvent(“变更”、假、真);
选择调度事件(evt);
}否则{
选择fireEvent(“变更”);
}
});
})

斯塔夫隆德
别斯
1.
斯塔夫隆德
别斯

2
多个问题,许多打字错误

  • 你有“as”和“buis”的价值观-没有“rond”
  • .attr是jQuery,而不是DOM
这可能就是你想要的

函数setAccess(){
var id=this.id.replace(“编辑类型”、“编辑类型2”),
字段=document.getElementById(id);
如果(this.value==“as”){
field.setAttribute('readonly','readonly');
}否则{
field.removeAttribute('readonly');
}
}
addEventListener(“加载”,函数(){
document.querySelectorAll(“[id^=edit\u type]”)。forEach(函数(sel){
sel.addEventListener(“更改”,setAccess);
//在PHP设置所选属性的情况下初始化字段
如果(文档中的“createEvent”){
var evt=document.createEvent(“HTMLEvents”);
evt.initEvent(“变更”、假、真);
选择调度事件(evt);
}否则{
选择fireEvent(“变更”);
}
});
})

斯塔夫隆德
别斯
1.
斯塔夫隆德
别斯

2
什么是
$i
?是否使用
php
生成HTML?
$i
已生成且功能正常。请单击
并仅使用纯HTML和JS创建HTML。不需要PHPor document.getElementById('edit_maat_2['+nr+']')。readOnly=true;试着看这个,也许它会帮助你什么是
$i
?是否使用
php
生成HTML?
$i
已生成且功能正常。请单击
并仅使用纯HTML和JS创建HTML。不需要PHPor document.getElementById('edit_maat_2['+nr+']')。readOnly=true;试着看这个,也许对你有帮助