この投稿を更新しました。問題がjquery validateの何かであると特定しましたが、それを修正する方法がわかりません。登録フォームを検証する次のコードがあります。Firefox、Chrome、または IE9 では、ユーザーが空のフォームで登録ボタンをクリックしようとすると、エラー メッセージが正常に表示されます。IE7 または 8 では、エラー メッセージは表示されません。
ここにjqueryがあります:
$('#form_register').validate({
messages: {
register_full_name: 'Please enter your name',
register_email: {
required: 'Please enter your email',
email: 'Please enter a valid email address'
},
register_username: {
required: 'Please choose a username',
minlength: 'Make it at least 3 characters'
},
register_password: {
required: 'Please choose a password',
minlength: 'Make it at least 6 characters'
},
register_newsletter: {
required: 'Please select either Yes or No'
}
},
rules: {
register_password: {
required: true,
minlength: 6
},
register_username: {
minlength: 3
}
},
submitHandler: function(){
submit_register();
return false;
}
});
このアラートは、IE7 または IE8 では表示されません。
$.validator.setDefaults({
errorElement: 'span',
errorPlacement: function(error, element){
alert('$.validator.setDefaults');
$(element.parent('label')).addClass('error');
error.appendTo( element.parent('label') );
},
success: function(label){
$(label.parent('label')).removeClass('error');
}
});
フォームは PHP ドキュメントにあります。
<div class="fb-login-button"><?php _e('Connect with Facebook'); ?></div>
<p class="or"><span class="left"></span><?php _e('or'); ?><span class="right"></span></p>
<span class="error server"></span>
<form id="form_register" class="dialog-field" name="form_register" action="<?php bloginfo('url'); ?>/register" method="post" accept-charset="UTF-8">
<input id="register_nonce" name="register_nonce" type="hidden" value="<?php echo wp_create_nonce( 'register_nonce' ) ?>" />
<input type="hidden" name="action" value="ic_submit_register" />
<fieldset class="width4">
<label class="width2 first hide"><?php _e('Username'); ?>
<input id="register_username" name="register_username" type="text" class="text required" value="" placeholder="Username for comments, lookbook" />
<p class="note"><?php _e('3 or more alphanumeric characters.'); ?></p>
</label>
<div class="clear"></div>
<label class="width2 first hide"><?php _e('Email'); ?>
<input id="register_email" name="register_email" type="text" class="text required email" placeholder="Email Address" value="" />
</label>
<div class="clear"></div>
<label class="width2 first hide"><?php _e('Password'); ?>
<input id="register_password" name="register_password" type="password" class="text" data-typetoggle="#register_showme" placeholder="Password" />
<p class="note"><?php _e('6 or more alphanumeric characters.'); ?></p>
</label>
<label id="showme" class="width2 first">
<input id="register_showme" name="register_showme" type="checkbox" /><?php _e('show me'); ?>
</label>
<div class="clear"></div>
<fieldset class="width2 radio">
<div class="toggle">
<label class="radio">
<span><?php _e('Yes'); ?></span>
<input type="radio" name="register_newsletter" value="1" class="required">
</label>
<label class="radio">
<span><?php _e('No'); ?></span>
<input type="radio" name="register_newsletter" value="0">
</label>
</div>
</fieldset>
<div class="clear"></div>
</fieldset>