【问题标题】:jQuery validation success message not styledjQuery 验证成功消息未设置样式
【发布时间】:2012-07-02 18:14:44
【问题描述】:

我将消息设置为红色表示错误,绿色表示成功。但消息似乎是红色的,表示成功。

验证码如下:

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

这里是 CSS 代码 sn-p:

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

【问题讨论】:

  • 查看小提琴,当它是有效输入时,OK 消息显示为绿色。它只是添加重复的 OK……你想要什么行为?
  • 我只想要一条绿色的 OK 消息。应该消除重复项。
  • 所以,参考我更新的答案...

标签: jquery css jquery-validate message


【解决方案1】:

要解决重复的问题,请执行以下操作:

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

【讨论】:

  • 就是这个!非常感谢! :)
  • 复制的不是文本内容,而是错误元素本身。删除 removeClass 会有所帮助(就像您所做的那样)。您不需要 .text(""),因为在创建文本节点之前会在内部调用 .empty()
【解决方案2】:

我认为您的标签以successerror 两个类结尾,因此遵循the rules to determine a CSS property value,后者获胜并且您的文本为红色(假设CSS 规则的顺序与您的问题中的顺序相同) .

至于为什么两者都有:documentation 表示如果指定了success,则“显示错误标签以显示有效元素”。我不完全确定这意味着什么。您可能想要深入研究(调试标签,检查 Firebug 或开发工具中的元素,查看 source of the plugin)。

在您在 jsfiddle.net 上的演示中,唯一的问题似乎是多个成功标签。我发现another answer 指出,如果您删除“错误”类,标签不会被清除。 I removed the removeClass from your example,它似乎可以按您的意愿工作(只有一个标签,颜色还可以)。

【讨论】:

  • 我更改了 CSS 中的顺序,但它没有做任何更改,消息仍为红色。
  • 请看我修改后的答案。
  • 这当然有帮助!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-08
  • 2012-01-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多