ワードプレスでオリジナルなフォームを組み込んでいて、未入力のフォーム部品がある場合送信ボタンを押しても送信させないための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ドクターまでお気軽にお送りいただけましたら幸いです