JavaScript初心者です。
問い合わせフォームのバリデーションを行うため、jQuery-Validation-Engineを利用しています。
メールアドレスのバリデーションで、特定のドメインのアドレスが入力されたらエラーメッセージを出したいです。
公式のGitHubからファイルをダウンロードしています。
もともと備わっている基本の機能は問題なく実行できています。(custom[email]など)
■利用環境
Inline Form Validation Engine 3.1.1
■エラー内容
jquery.validationEngine.js:1135 Uncaught TypeError: Cannot read property 'indexOf' of undefined
at _mailException (jquery.validationEngine.js:1135)
at Object._getErrorMessage (jquery.validationEngine.js:882)
at Object._validateField (jquery.validationEngine.js:709)
at jquery.validationEngine.js:267
■私が追加したソース(抜粋)
【index.php】
html
1 <div class="item element_wrap"> 2 <label class="label question">メールアドレス</label> <span class="attention">※必須</span><br> 3 <input class="inputs validate[required,custom[email],custom[mailException]]" type="email" name="email" value="<?php if(!empty($_POST['email']) ){ echo $_POST['email']; } ?>"> 4 </div> 5
【jquery.validationEngine.js】に追記
708行目
JavaScript
1 case "mailException": 2 errorMsg = methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._mailException); 3 if (errorMsg !== undefined) { 4 required = true; 5 } 6 break;
1132行目
JavaScript
1 _mailException: function(field, rules, i, options) { 2 var mailExceptionField = rules[i + 1]; 3 4 if (mailExceptionField.indexOf(/@xxx.com/) !== -1) 5 return options.allrules.mailException.alertText; 6 }, 7
【jquery.validationEngine-ja.js】に追記
JavaScript
1 "mailException": { 2 "regex": "none", 3 "alertText": "* xxx.comのメールアドレスはご利用になれません。" 4 }
JavaScript初心者のため、もともとのソースを真似て自分で編集しています。
正直なところ細かい記述の意味をしっかり理解できていない状態です。
初歩的なところで間違えているかもしれず、お恥ずかしい限りですが、
アドバイスをいただけたらありがたいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/03 05:30