jQuery 1.12.4、 Parsley 2.4.3使用
jQueryプラグイン Parsleyを使い、バリデーションを実装しています。
http://parsleyjs.org/doc/
必須入力である、名前や件名が空の時にhas-errorというクラスが付加され、
入力済ならば、has-successというクラスが付加されるようにしています。
日時の欄は日、時、分の3つが入力されていなければ、エラーメッセージを
1つだけ表示するよう、独自のバリデーションを追加しようとしているのですが、
これが思うようにできていません。
html
1<form class="parsley-validate" data-parslery-validate="" parsley-use-html5-constraints="false"> 2<label>お名前</label> 3<input tyep="text" name="yourname" required=""> 4 5<label>メールアドレス</label> 6<input tyep="email" name="email" required=""> 7 8<label>件名</label> 9<input tyep="text" name="subject" required=""> 10 11<label>ご希望の日時</label> 12<input type="date" name="request_date" required="required"> 13 14<select name="hour"> 15<option value=""></option> 16<option value="00">00</option> 17<option value="01">01</option> 18略 19</select> 20 21<select name="minute"> 22<option value=""></option> 23<option value="00">00</option> 24<option value="01">01</option> 25略 26</select> 27 28<textarea name="body" required=""></textarea> 29 30<input type="submit" value="送信"> 31</form> 32 33<script> 34$(function(){ 35 $('form.parsley-validate').parsley({ 36 trigger: 'change', 37 successClass: "has-success", 38 errorClass: "has-error", 39 classHandler: function (el) { 40 return el.$element.closest('.form-group'); //working 41 }, 42 errorsWrapper: '<div class="invalid-message"></div>', 43 errorTemplate: '<span></span>' 44 }); 45}); 46</script>
この後、どのように書けばいいでしょうか。
追記します。
ここの回答を参考にしつつ、addValidatorを書いたのですが
動かずに困っています。(特にエラーもなし)
http://stackoverflow.com/questions/27383263/validate-multiple-fields-with-parsley
addValidatorを呼び出しているかどうかチェックするため
console.logを書いたのですが、何も出ていません。
ひたすらドキュメントを読んでいるのですが、解決できずにおります。
html
1<!-- 参考URLを元に変更 --> 2<input type="date" name="request_date" required="required" data-parsley-date="js-dob" class="js-dob-date"> 3<input type="text" name="hour" required="required" data-parsley-date="js-dob" class="js-dob-hour"> 4<input type="text" name="minute" required="required" data-parsley-date="js-dob" class="js-dob-minute"> 5 6<script> 7$(function(){ 8 <!-- 以下を追記 --> 9 window.Parsley.addValidator('date', 10 function(value, requirements){ 11 //addValidatorを呼び出してるかチェックするため 12 console.log('addValidator'); 13 var day = $('.'+requirements+'-date').val(), 14 hour = $('.'+requirements+'-hour').val(), 15 day = $('.'+requirements+'-minute').val(); 16 //以下略 17 } 18 ); 19 <!-- /追記終わり --> 20 21 $('form.parsley-validate').parsley({ 22 trigger: 'change', 23 successClass: "has-success", 24 errorClass: "has-error", 25 classHandler: function (el) { 26 return el.$element.closest('.form-group'); //working 27 }, 28 errorsWrapper: '<div class="invalid-message"></div>', 29 errorTemplate: '<span></span>' 30 }); 31}); 32</script> 33

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/08 03:10 編集