0

この投稿を更新しました。問題が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>
4

1 に答える 1

0

これはおそらく問題を解決しませんが、あなたの状態は壊れているように見えます:

if(res!==null || res!=="" || res!=="Username for comments, lookbook")

私はあなたが欲しいと思います

if(res!==null && res!=="" && res!=="Username for comments, lookbook")

なぜなら

res !== null or res !== ""

常に true と評価されます。

于 2012-08-20T17:32:05.250 に答える