私は、少なくとも1が必要で検証しようとしています2つのブートストラップ用のフォーム要素を持っている:jQueryの検証は、フォーム送信できないrequire_from_group
<script src="/public/js/jquery-1.12.4.min.js"></script>
<script src="/public/js/jquery.validate.min.js"></script>
<script src="/public/js/additional-methods.min.js"></script>
jQueryのバージョンを検証:
<div class="form-group">
<label>Notification Email:</label>
<input type="email" class="form-control notifGroup" id="notifEmail" name="notifEmail" />
</div>
<div class="form-group">
<label for="phone">Notification Phone Number for SMS:</label>
<input type="text" class="input-medium bfh-phone notifGroup" data-country="US" id="notifPhone" name="notifPhone" />
</div>
私は私のスクリプトを持っています
1.15.0と私の検証機能:
$(document).ready(function() {
$('#form').validate({
rules: {
notifPhone: {
require_from_group: [1, ".notifGroup"]
},
notifEmail: {
require_from_group: [1, ".notifGroup"]
}
},
messages: {
},
submitHandler: function(form) {
var email = $('#notifEmail').val()
var phone = $('#notifPhone').val()
data = {
phone,
email
}
$.ajax({
type: 'POST',
url: 'http://myurl/myendpoint',
data: data,
success: function(res) {
if (res == true) {
$('#error').html('<p><strong>all good.</strong></p>')
$('#form')[0].reset()
$('#submitBtn').hide()
setTimeout(function() {
$('#error').html('<p></p>')
}, 5000)
}else if (res == 'over limit'){
$('#error').html('<p><strong>too many.</strong></p>');
setTimeout(function() {
$('#error').html('<p></p>')
}, 5000)
}else {
$('#error').html('<p><strong>already there.</strong></p>');
$('#form')[0].reset();
$('#submitBtn').hide()
setTimeout(function() {
$('#error').html('<p></p>')
}, 5000)
}
},
error: function(err) {
console.log(err);
},
timeOut: 5000
});
return false;
}
});
});
電子メールまたは電話番号のうちの1つだけを要求するまでは、すべてうまく機能しました。ストレートフォワード検証で両方が必要な場合は、問題はありませんでした。
ただし、1つしか必要としない場合、エラーはスローされず、フォームはブランク値で送信されます。 .notifGroupの代わりにセレクタの一方または両方に不良データを入れた場合、エラーは適切なセレクタ(または両方とも不良データ)でフィールドにスローされますが、両方のフィールドが埋められていてもフォームは送信されません。
大変助かりました。
私のコードにコメントしてSparkyのJSFiddleのコードを私のプロジェクトにコピーしましたが、それはまだ動作しません。私が紛失しているか、JSスクリプトの注文が間違っている可能性がありますか?これはjQuery-jQValidate-additionalmethods-bootstrap-myajaxfile-myformvalidation-bootstrapformhelpersになりますか? –
@ Sparky、エラーメッセージは、ルールにセレクタが正しくない、またはセレクタがない場合にのみ表示されます。しかし、明らかにフォームは提出しません。 –
プラグインのデバッグオプションの使用に関する私の最後のコメントに従いましたか? – Sparky