标题说明了一切...
我不是在寻找解决方法的答案(例如禁用选择/隐藏输入);我只是问:为什么会这样?
除了开发人员认为 API 应该是这样之外,我不确定是否有真正的答案。
我的看法是“只读”意味着你要进行一些打字。也许开发者没有想到 select 元素真的接受了键盘输入。因此选择使用“禁用”属性。
这在表单中很有用。例如,您希望用户在实际将数据输入到输入框之前勾选复选框或回答问题。它帮助用户“保持正确的轨道”,以便可以根据某些偏好正确记录数据。
尽管如此,根据http://www.w3schools.com/tags/att_input_readonly.asp
The readonly attribute can be set to keep a user from changing the value until some other conditions have been met (like selecting a checkbox, etc.). Then, a JavaScript can remove the readonly value, and make the input field editable.
这个链接也有一个实际的例子
http://www.geekgumbo.com/2011/02/12/html-disabled-or-readonly/