【jquery.validate】バリデーション&ブラウザの確認ダイアログ(confirm)を出して送信する
送信ボタンをクリックしたら、バリデーションをチェック。
エラーが無ければ確認ダイアログ(confirm)を出してOKボタンで送信する。
jquery.min.jsとjquery.validate.min.js読み込み
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" charset="utf-8"></script> <script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.20.0/dist/jquery.validate.min.js"></script>
html
<form id="formname">
<fieldset>
<legend>送信内容を確認してください</legend>
<label for="inputcheck">
<input type="checkbox" id="inputcheck" name="inputName">これで大丈夫!
</label>
<div id="error-inputName"></div>
</fieldset>
<br>
<button id="btnconfirm">送信する</button>
</form>
jQuery
//
$(document).ready(function() {
var formname = $("#formname").validate({
rules: {
inputName: {
required: true,
},
},
messages: {
inputName: {
required: "ちゃんと確認してください!",
},
},
errorPlacement: function(error, element) {
if (element.attr("name") == "inputName") {
error.insertAfter("#error-inputName");
} else {
error.insertAfter(element);
}
},
});
// 送信ボタンの設定
$('#btnconfirm').click(function(e) {
e.preventDefault();
var formId = "#formname";
// 入力要素がある場合
if ($(formId).length > 0) {
if ($(formId).valid()) {
if (confirm('本当に送信しますか?')) {
formname.settings.submitHandler = function(form) { form.submit(); };
$(formId).submit();
}
} else {
formname.form();
// エラーの最初の要素にフォーカス
$(":input.error:first").focus();
}
} else {
// 入力要素が無い(送信ボタンのみ)場合
if (confirm('本当に送信しますか?')) {
$(formId).submit();
}
}
});
});
//