ワードプレスでオリジナルなフォームを組み込んでいて、未入力のフォーム部品がある場合送信ボタンを押しても送信させないためのjQueryコードをご紹介いたします。
required 属性を付与したフォーム部品を送信前にjQueryで検査
下記のようなrequired属性のあるフォームの部品があるフォームで、送信ボタンを押した瞬間に、required属性をjQueryで強制的に検証し任意の処理を行う事が可能です。
<form action='post' action=''> お名前 <input type="text" id='myname' required /> <input type="submit" id='submitbutton' /> </form>
jQueryのコードが下記のようになります。
<script> jQuery(document).ready(function () { jQuery('#submitbutton').on('click', function (e) { if (! jQuery('form')[0].reportValidity()) { alert('入力されていない項目があります'); e.preventDefault(); } }); }); </script>
jQuery(document).ready でページが読み込まれた後にスクリプトを実行します。
jQuery(‘#submitbutton’).on(‘click’で送信ボタンが押された瞬間に、if (! jQuery(‘form’)[0].reportValidity()) {で最初のフォーム([0])で未入力の項目がある場合、アラートを出してe.preventDefault();でフォームの送信を停止します。
※ワードプレスでは$ではなくjQueryを使用します。
※reportValidity()は入力フィールドの 検証を行い、その検証エラーを強制表示する関数です(この為、その画面にとどまるならばブラウザーがエラーを自動表示してくれます)
下記のようにすることで任意のフォーム部品が未入力かを調べることも可能です。
if (! jQuery('form')[0].reportValidity()) { var myname = $('#myname').val(); if(myname==''){ alert('お名前が入力されていません'); } e.preventDefault(); }
ご参考になりましたら幸いです。
WordPress ワードプレスのテーマのカスタマイズや修正のご依頼・ご相談はWPドクターまでお気軽にお送りいただけましたら幸いです