我有以下HTML代码:
<input type="text" id="test" ><br>
<button onclick="makeReadOnly('true')">Make read only (ok)</button>
<button onclick="makeReadOnly('false')">Make read/write (not ok)</button>
<button onclick="makeReadOnly(false)">Make read/write (ok)</button>
使用此脚本:
function makeReadOnly(r) {
$("#test").prop("readOnly", r);
}
我的问题是:致电makeReadOnly(false)
有效,而makeReadOnly('false')
没有。
但makeReadOnly('true')
有效。
(使用JQuery 1.9.1测试)
谁能解释我为什么?
答案 0 :(得分:2)
因为铸造。字符串"false"
被强制转换为布尔true
。基本上,任何非空字符串(以及0和其他几个东西)。试试吧! Boolean("false")
。
readOnly
属性将其输入转换为布尔值。因此"true"
和"false"
成为true
,false
只保留false
。