私はまったく同じ設定で作業していますが、form
要素を使用してこれを行う簡単な方法はないことがわかりました。input
私のハックは、無効な//を監視し、select
そこtextarea
から何かが発火することでした。これは、特に無効な入力が多い場合には最善の修正ではありませんが、必要なものを見つけるのに役立ちました。うまくいけば、誰か他の人がやって来て、それを少しきれいにすることができるでしょう。
function scrollToInvalid() {
// Height of your nav bar plus a bottom margin
var navHeight = 60;
// Offset of the first input element minus your nav height
var invalid_el = $('input:invalid').first().offset().top - navHeight;
// If the invalid element is already within the window view, return true. If you return false, the validation will stop.
if ( invalid_el > (window.pageYOffset - navHeight) && invalid_el < (window.pageYOffset + window.innerHeight - navHeight) ) {
return true;
} else {
// If the first invalid input is not within the current view, scroll to it.
$('html, body').scrollTop(invalid_el);
}
}
$('input').on('invalid', scrollToInvalid);