2012-07-02 2 views
0

Я рисую сообщения красным цветом для ошибок и зелеными для успеха. Но сообщения кажутся красными для успеха.jQuery подтверждение успешного сообщения не в стиле

Вот код проверки:

debug: true, 
errorElement: "em",    
success: function(label) { 
    label.text("ok!").addClass("success"); 
}, 

А вот CSS фрагмент кода:

em.success 
{ 
    float: none; 
    color: green; 
    padding-left: .5em; 
    font-style: italic; 
    font-size: 11px;  
} 

em.error 
{ 
    float: none; 
    color: red; 
    padding-left: .5em; 
    font-style: italic; 
    font-size: 11px; 
} 

Что именно неправильно в моем коде?

Обратитесь к this fiddle.

+0

Глядя на Fiddle, сообщение OK отображается зеленым, если это допустимый ввод. Это только добавление дубликатов OK ... Какое поведение вы хотите? –

+0

Я хотел бы только один ОК сообщение в зеленый цвет. Наличие дубликатов должно быть устранено. –

+0

Итак, см. Мой обновленный ответ ... –

ответ

1

Для решения дубликата OK, сделайте следующее:

success: function(label) 
{ 
    label.text("").text("ok!").addClass("success"); 
} 
+0

Thats the one! Спасибо огромное! :) –

+1

Это было не дублированное текстовое содержимое, это был сам элемент ошибки. Удаление «removeClass» помогает (как и вы). Вам не нужно '.text (" ")' as '.empty()' вызывается внутри, прежде чем создавать текстовый узел. – Wolfram

1

Я думаю, ваша метка заканчивается обоих классов success и error, поэтому следующий the rules to determine a CSS property value, последний выигрывает и текст красного цвета (предполагается, что порядок правила CSS такие же, как в вашем вопросе).

Относительно того, почему у них есть оба: documentation говорит, что если указано значение success, «отображается метка ошибки, чтобы показать действительный элемент». Я не совсем уверен, что это значит. Вы можете захотеть вникать в это (отладить ярлык, проверить элемент в Firebug или dev tools, посмотреть на source of the plugin).

В вашей демонстрации на jsfiddle.net единственной проблемой являются множественные метки успеха. Я нашел another answer, заявив, что если вы удалите класс «ошибка», метки не будут очищены. I removed the removeClass from your example и кажется, что он работает так, как вам бы хотелось (только один ярлык, цвета в порядке).

+0

Я изменил порядок в CSS, но он сделал какие-либо изменения, сообщения все еще окрашены в красный цвет. –

+0

См. Мой пересмотренный ответ. – Wolfram

+0

Это, безусловно, помогает! Спасибо! –

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