javascript - 只读与禁用我的代码有什么问题?

标签 javascript dom-events

Readonlydisabled 我的代码有什么问题?

  <select id="A" onchange="change_val(A,B)">
    <option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
    <option value="D">D</option>
    </select>

<input type="text" id="B" value="Hello first time"/>


function change_val(selectbox,input_filed) {
  var sel = document.getElementById(selectbox),
  lbl = document.getElementById(input_filed);

  lbl.disabled = (sel.selectedIndex !== 0);
  if(sel.selectedIndex === 0) {
  lbl.value = 'Hello first time';
  } else {
  lbl.value = sel.options[sel.selectedIndex].value;
  }
}

当我们更改选择框时,此脚本可以与“DISABLED”输入属性一起正常工作。 但是当我尝试使用READONLY输入属性时,因为我需要提交数据但不允许更改 所以我将函数更改为如下所示:

function change_val(selectbox,input_filed) {
  var sel = document.getElementById(selectbox),
  lbl = document.getElementById(input_filed);
if(sel.selectedIndex !== 0){var readonly='readonly';}
  lbl.readonly = readonly;
  if(sel.selectedIndex === 0) {
  lbl.value = 'Hello first time';
  } else {
  lbl.value = sel.options[sel.selectedIndex].value;
  }
}

READONLY 输入字段不起作用。输入字段仍然可编辑

有人知道代码有什么问题吗?我对只读属性的误解是什么?

最佳答案

该属性称为readOnly(大写O):

lbl.readOnly = (sel.selectedIndex !== 0);

您还应该将字符串传递给函数:

<select id="A" onchange="change_val('A','B')">

DEMO

关于javascript - 只读与禁用我的代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5115816/

相关文章:

javascript - 将 JSON 文件加载到 JS 对象中

JavaScript:使用公共(public)方法和私有(private)方法对数组求和

javascript - 分配给变量(别名)的类方法在 Javascript 中丢失了 this 的值

javascript - 单击突出显示 div

javascript - 下拉按钮列表。 Onmousover 在右侧显示按钮说明

javascript - 在 Prototype 中绑定(bind)和触发 native 和自定义事件

javascript - 获取添加的 DOM 节点的类名 (mutationObserver)

javascript - 在 ng-repeat 中调用另一个函数

现有 onclick 事件的 Javascript IE8 包装器

javascript - 如何检查动态附加事件监听器是否存在?