JQuery readOnly奇怪的行为

时间:2014-11-30 19:02:33

标签: jquery

我有以下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测试)

谁能解释我为什么?

http://jsfiddle.net/ym9qe99p/1/

1 个答案:

答案 0 :(得分:2)

因为铸造。字符串"false"被强制转换为布尔true。基本上,任何非空字符串(以及0和其他几个东西)。试试吧! Boolean("false")

readOnly属性将其输入转换为布尔值。因此"true""false"成为truefalse只保留false