0

2 つの必須フィールドを持つ単純なフォームがあり、エラー メッセージはスライド アウト div に配置されます。フォームに入力しないと、検証は正常に機能し、エラー メッセージが表示されますが、フィールドに入力すると、エラー メッセージが表示され続けます。ここでいくつかの解決策を試しましたが、何も機能せず、何が原因なのかわかりません。これが私のコードです:HTML

<form id="login_form"  method="post">
<ul>
    <li>
  <label for="user">Gebruikersnaam</label>
  <input  type="text" name="user" id="user" />
  </li>
  <li>
  <label for="paswoord">Paswoord</label>
  <input  type="password" name="password" id="paswoord" />
  </li>


 <li>
  <input class="btn black" type="submit" value="Login" />
  <span id="password" ><a href="#">Wachtwoord vergeten?</a></span>
  </li>
  </ul>
</form>

Jクエリ

    var validator = $('#login_form').validate({     
     rules: {           
        user: {
            required: true},
        password: {
            required: true},                
        },
    onfocusout: true,

invalidHandler: function(form, validator) {
 var errors = validator.numberOfInvalids();
  if (errors) {
    var message = errors == 0
      ? 'You missed 1 field. It has been highlighted'
      : 'You missed ' + errors + ' fields. They have been highlighted';
    $("div.error span").html(message);
   $("div.error").hide().slideDown('slow');
            setTimeout(function(){$("div.error").slideUp(); },10000);
  } else {
    $("div.error").hide();
  }
},

submitHandler: function(form){              
        $("div.ok").removeClass("error").hide().slideDown('slow');
        setTimeout(function(){$("div.ok").slideUp(); },10000);
        }
});
jQuery.validator.messages.required = "";
4

1 に答える 1

0

追加の変数を作成して解決しました:

invalidHandler: function(form, validator) {
 var errors = validator.numberOfInvalids();
 var notifyDiv = $('#notify');
 var notifyMessage = $('#notify span');

  if (errors) {
    var message = errors == 0
      ? 'U bent 1 veld vergeten.Dit is aangeduid.':
       'U bent  ' + errors + ' velden vergeten. Deze zijn aangeduid.';
     notifyMessage.html(message);
     notifyDiv.addClass('error').removeClass('ok').hide().slideDown('slow');
            setTimeout(function(){notifyDiv.slideUp(); },10000);
  } else {
    $("div.error").hide();
  }
},

submitHandler: function(form){
    var notifyDiv = $('#notify');
    var notifyMessage = $('#notify span');
    var message = 'Formulier werd verstuurd.';
    notifyMessage.html(message);
    notifyDiv.addClass('ok').removeClass('error').hide().slideDown('slow');
    setTimeout(function(){notifyDiv.slideUp(); },10000);
}

}

于 2012-08-30T10:14:47.380 に答える