2015-05-21 3 views
0

У меня есть простая форма с двумя переключателями и кнопкой отправки.Сообщение об ошибке проверки jQuery показывает, когда это не должно

Если ни один из радиостанций не установлен, при нажатии кнопки «Отправить» это вызывает ошибку. Как это должно. Затем нажатие на кнопку радио вызывает ошибку.

Проблема: После исчезновения ошибки, если я нажму на другую радиокнопку, ошибка снова появится кратковременно. Аналогично, когда я нажимаю кнопку «Отправить», она отображается кратко. Почему это?

Here's a fiddle showing the issue

Вот код:

<form> 
    <input type="radio" name="options" class="radioB"> 
    <input type="radio" name="options" class="radioB"> 
    <input type="submit" value="submit" class="submit"> 
</form> 
<div id="error--holder"></div> 

$("form").validate({ 
    rules: { 
     options: { 
      required: true 
     } 
    }, 
    messages: { 
     options: "Whoops! Please indicate who.", 
    }, 
    errorPlacement: function(error, element) { 
     $('#error--holder').html(error.text()+' <a href=#>Go fix it...</a>').fadeIn(); 
    }, 
    success: function(error) { 
     $('#error--holder').fadeOut(); 
    }, 
    submitHandler: function (form) { 
     return false; // stop 
    } 
}); 
+1

В методе errorPlacement вы можете ch eck длина сообщения об ошибке, если его длина должна быть больше одной, а затем показывать еще что-то еще. –

ответ

1

вы можете применить трюк, если текст ошибки доступен в элементе, то fadeIn() сообщение об ошибке, см ниже примеры кода

errorPlacement: function(error, element) { 
     if(error.text()) 
     $('#error--holder').html(error.text()+' <a href=#>Go fix it...</a>').fadeIn(); 
} 

DEMO

Смежные вопросы