phoneUS メソッドで Jquery Validate Plugin を使用する。
次のコード (少しストライプ化) は、もちろん私の開発者の悩みの種である IE を除いて、どこでも機能します。
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
phone_number = phone_number.replace(/\s+/g, "");
return this.optional(element) || phone_number.length > 9 &&
phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "");
jQuery("#myform").validate({
rules: {
EmailF: {
required: true,
email: true
},
PhoneF:{
required: "#mycheck:checked",
phoneUS: true
},
},
messages: {
EmailF: " "
},
});
});
</script>
基本的にチェックボックス (#mycheck) があり、チェックされている場合は PhoneF フィールドを検証する必要があります。チェックされていない場合は、検証する必要はありません。
前述のように、FF、Chrome、Safari、さらには IPhone でも動作しますが、IE ではこの状態を回避できません。
必要なフィールドを関数に変換して、チェックボックスがIEによってチェックされているかどうかを確認するいくつかの異なる方法を試しましたが、うまくいきません。
どんな支援も大歓迎です!