旧 - 設定は、フォーム上の各要素の属性が
// submit button event
$('#form-submit-btn').click(function(event) {
// set required attribute for each element
$('#elm1, #elm2').attr('required','true');
// since required attribute were not set (before this event), prevent form submission
if(!$('#form')[0].checkValidity())
return;
// submit form if form is valid
$('#form').submit();
});
方法2を提出する '必要'それは便利だと思うかもしれない人たちのために:私は、フォームを提出しようとするとクラスをフォームに追加する小さなスクリプトを作ったので、別々に提出することがttempted:提出しようとしている
今
window.addEventListener('load', function() {
/**
* Adds a class `_submit-attempted` to a form when it's attempted to be
* submitted.
*
* This allows us to style invalid form fields differently for forms that
* have and haven't been attemted to submit.
*/
function addFormSubmitAttemptedTriggers() {
var formEls = document.querySelectorAll('form');
for (var i = 0; i < formEls.length; i++) {
function addSubmitAttemptedTrigger(formEl) {
var submitButtonEl = formEl.querySelector('input[type=submit]');
if (submitButtonEl) {
submitButtonEl.addEventListener('click', function() {
formEl.classList.add('_submit-attempted');
});
}
}
addSubmitAttemptedTrigger(formEls[i]);
}
}
addFormSubmitAttemptedTriggers();
});
フォームはクラス_submit-attempted
を取得しますので、あなただけのこれらのフィールドに赤いボックスシャドウを与えることができます:
input {
box-shadow: none;
}
form._submit-attempted input {
box-shadow: 0 0 5px #F00;
}
JavaScriptサポートなしのユーザーには ':invalid'疑似クラスを使用し、JSサポートのあるユーザーの場合は* real *クラスでオーバーライドします。 – zzzzBov