我測試了谷歌Chrome以下內容:
<!DOCTYPE html>
<html>
<body>
<style>
.valid { color: #0d0; }
.invalid { color: #d00; }
</style>
<div id="output"></div>
<script>
function check(input) {
var out = document.getElementById('output');
if (input.validity) {
if (input.validity.valid === true) {
out.innerHTML = "<span class='valid'>" + input.id +
" is valid</span>";
} else {
out.innerHTML = "<span class='invalid'>" + input.id +
" is not valid</span>";
}
}
console.log(input.checkValidity());
};
</script>
<form id="testform" onsubmit="return false;">
<label>Required:
<input oninput="check(this)" id="required_input"
required />
</label><br>
<label>Pattern ([0-9][A-Z]{3}):
<input oninput="check(this)" id="pattern_input"
pattern="[0-9][A-Z]{3}"/>
</label><br>
<label>Min (4):
<input oninput="check(this)" id="min_input"
type=number min=4 />
</label><br>
</form>
</body>
</html>
Stangely,該<element>.validity.valid
屬性似乎正常工作,但調用<element>.checkValidity()
總是返回true,所以它看起來像是一個尚未實現。
你需要調用checkValidity的形式,而不是投入上 – miketaylr 2010-03-11 01:25:26
你在哪裏看到的HTTP。。。? //dev.w3.org/html5/spec/Overview.html說checkValidity是HTMLObjectElement上的一個成員函數,並且:「當調用checkValidity()方法時,如果該元素是約束驗證的候選者......用戶代理必須激發一個名爲invalid的簡單事件,該事件可以在元素處取消...並返回false。 「 相同規範將」約束驗證的候選對象「定義爲」列出的與表單關聯的元素是約束驗證的候選對象,除非條件禁止約束驗證中的元素。「 似乎應用了輸入。 – 2010-03-11 07:02:51
我的理解是在表單上調用checkValidity()將簡單地依次委託給它的每個'input's(和'select's'和'textarea's),但我不能說我真的有一個參考 – 2010-03-11 14:11:04