私はウィザードのような方法で 4 つのセグメントに分割している非常に大きなフォームを持っています。ウィザード プラグイン (スマート ウィザード) には、現在フォーカスされているフォーム セグメントがあり、残りの 3 つのセグメントは dom に隠されています。
jquery 検証プラグインを使用して、その場でフォームを検証しています。問題は、表示されているフォームのその部分を検証することです。ユーザーが次のステップに移動したときにのみ、フォームのその部分で検証を実行したいと考えています。
要素の配列を指定して、検証プラグインがトリガーされたことを検証する方法はありますか?
ウィザード プラグインの onLeaveStep オプションで、validate プラグインを呼び出しました。ユーザーがクリックするかどうかに関係なく、次または前の検証がトリガーされます。
var $myform = $("#registeration");
var validator = $myform.validate({
errorElement: "span",
rules: {
regtype: "required",
firstname: "required",
lastname: "required",
address1: "required",
city: "required",
country: "required",
phone1: "required",
email: {
required: true,
email: true
},
attendees: {
required: true,
digits: true
}
},
messages: {
regtype: "Select an option",
firstname: "Enter your first name",
lastname: "Enter your last name",
address1: "Enter your address",
city: "Enter your city",
country: "Enter your country",
phone1: "Enter your phone number",
email: "Enter your e-mail",
attendees: "Enter number of persons attending (including yourself)"
}
});
// Initialize Smart Wizard
$('#wizard').smartWizard({
transitionEffect:'slide',
hideButtonsOnDisabled:true,
transitionEffect: 'fade',
onLeaveStep: function(){
if(validator.form()){
//$myform.trigger('submit');
return true;
}else{
return false;
}
}
});