关于 .hasOwnProperty() 和 ValidityState 对象,我遇到了一些非常奇怪的行为。
在 IE (11) 和 FF (26) 中,在 ValidityState 上调用 .hasOwnProperty() 始终返回 false,即使该属性已明确设置。在 Chrome (33.0.1750.154 m) 中,它似乎工作正常。
这是我用来测试的代码(或查看 JSFiddle)。
<input type="text" id="dummy" required />
<ul id="properties"></ul>
var oField = document.getElementById('dummy')
,oList = document.getElementById('properties');
oField.addEventListener('change', function() {
oList.innerHTML = '';
for (var sProperty in oField.validity) {
var oLi = document.createElement("li");
oLi.innerHTML = sProperty + '[hasOwnPropertyValue=' + oField.validity.hasOwnProperty(sProperty).toString() + ']';
oList.appendChild(oLi);
}
});
我在这里做错了什么还是浏览器没有正确处理这个?我一个,难住了!
编辑:发布了一个错误的例子......我责怪星期五