在validityState中搜索值

evo*_*box 3 javascript validation

我可能会接近这个错误的方式,但我很困惑如何提取信息inputvalidityState对象.

var input = document.querySelector('#myinput');
var validity = input.validity;
var keys = Object.keys(validity);

console.log( validity );          // [ object validityState ]
console.log( validity.valid );    // false (this is expected)

console.log( keys )               // empty array
console.log( keys.length )        // 0
Run Code Online (Sandbox Code Playgroud)
<input type="text" id="myinput" required>
Run Code Online (Sandbox Code Playgroud)

我的主要问题是,如果我无法迭代validityState对象,如何找出哪个属性"失败" ?

我错过了什么吗?

Lud*_*ltz 5

不要用Object.keys().您可以像这样简单地迭代您的有效状态:

var input = document.querySelector('#myinput');
var validity = input.validity;
for(var key in validity){
     console.log(key + ": " + validity[key]);
}
Run Code Online (Sandbox Code Playgroud)
<input type="text" id="myinput" required>
Run Code Online (Sandbox Code Playgroud)

编辑:

  • Object.keys()仅引用当前Object中的键,并且不查看此Object原型.请注意,进行相同的测试object.hasOwnProperty()

  • in返回true如果该属性是存在于当前对象 如果该属性是存在于原型