ブートストラップ バリデータ プラグインを使用してフォーム クライアント側を検証していますが、summernote テキストエリアを再検証するときに失敗するようです。初めて検証しますが、テキストが更新されると、検証は更新されません。
検証は次のとおりです(他の検証フィールドを省略しています)
function validateEditor() {
// Revalidate the content when its value is changed by Summernote
$('#application-form').bootstrapValidator('revalidateField', 'application'));
};
$('.application-form')
.bootstrapValidator({
excluded: [':disabled'],
fields: {
application: {
validators: {
callback: {
message: 'Please do not leave this blank.',
callback: function(value, validator) {
var code = $('[name="application"]').code();
// <p><br></p> is code generated by Summernote for empty content
return (code !== '' && code !== '<p><br></p>');
}
}
}
}
}
}).on('success.form.bv', function(e) {
e.preventDefault();
console.log('Form successfully validated.');
})
.find('[name="application"]')
.summernote({
height: 400,
onkeyup: function() {
validateEditor(); // Revalidate form onkeyup
},
onpaste: function() {
validateEditor(); // Revalidate form on paste
},
});
これがマークアップです(これも他のフィールドから切り取ったものです)
<div class="form-group">
<textarea name="application"></textarea>
</div>
これは大きな問題です。最初にテキストエリアを空白のままにすると、ユーザーがエラーを修正したときに検証が更新されないため、フォームを再送信できないためです。