このプラグインを使用して検証するフォームがあります: http://bassistance.de/jquery-plugins/jquery-plugin-validation/
を使用して、リンクがクリックされた場合に表示されるこのフォームにフィールドを追加することにしました.toggle()
。
フォームは次のとおりです。
<form id="identification" action="Test.php" method="post">
<fieldset>
<legend>Identification</legend>
<p>
<label for="firstName">First name</label>
<input id="firstName" type="text" name="firstName" class="required"/>
</p>
<p>
<label for="lastName">Last name</label>
<input id="lastName" type="text" name="lastName" class="required"/>
</p>
<p>
<label for="email">E-mail address</label>
<input id="email" type="text" name="email" class="required email"/>
</p>
<div class="hiddenFields">
<p>
<label for="zip">Zip code</label>
<input id="zip" type="text" name="zip" class="required zip"/>
</p>
<p>
<label for="city">City</label>
<input id="city" type="text" name="city" class="required"/>
</p>
</div>
<p class="showFields"><a class="toggle" href="#">Click here</a> for more info</p>
</fieldset>
<p class="submit"><input type="submit" value="Submit"/></p>
</form>
.hiddenFields
div はdisplay: none;
私の CSS のように設定されています。
検証スクリプトは次のとおりです。
$(document).ready(function(){
$("#identification").validate({
rules: {
"zip": { digits:true, minlength:5, maxlength:5 }
}
});
jQuery.extend(jQuery.validator.messages, {
required: "This field is needed.",
email: "Please enter a valid e-mail address.",
digits,minlength,maxlength: "Please enter a valid zip code.",
minlength: "Please enter a valid zip code.",
maxlength: "Please enter a valid zip code."
});
});
トグル スクリプトは次のとおりです。
$(document).ready(function(){
$("a.toggle").click(function(e){
e.preventDefault();
$(".hiddenFields").toggle("fast");
});
});
.hiddenFields
これで、 divがなくてもすべて正常に動作します.toggle()
が、追加しようとすると、検証が機能しなくなり、その理由がよくわかりません。
フィールドが非表示の場合とそうでない場合に、このフォームを検証するにはどうすればよいですか? 現在、どちらの場合にも機能しません。
ご協力いただきありがとうございます。