このデモを参照してください:http://jsfiddle.net/3JeZ6/10/
そのためのHTMLは次のとおりです。
<style>
.valid { color: #0d0; }
.invalid { color: #d00; }
</style>
<form id="testform" action="/">
<label>Required:
<input id="required_input" required="">
</label><br>
<label>Pattern ([0-9][A-Z]{3}):
<input id="pattern_input" pattern="[0-9][A-Z]{3}">
</label><br>
<label>Min (4):
<input id="min_input" type="number" min="4">
</label><br>
<input type="submit" value="Submit Button" id="sbmt" />
</form>
<input type="button" value="Trigger click on submit button" id="test">
<input type="button" value="Trigger form submit" id="test1">
<input type="button" value="Run checkValidity" id="test2">
それは私にとってはクレイジーですが、単純なform.submit()
ものは実際には機能しません。ただし、送信ボタンのクリックをトリガーすると、すべてが正常に機能します。
$("#test").click(function(){
$("#sbmt").click(); // works fine
})
$("#test1").click(function(){
$("#testform").submit();// does not work
})
$("#test2").click(function(){
alert($("#testform")[0].checkValidity() ? "valid": "not valid"); // result looks to be correct, but it does not highlight fields that are not valid
})
最新のChromeとFireFoxで次の動作を確認しました