jquery错误放置

时间:2009-05-06 11:24:32

标签: jquery css internet-explorer validation

我有一个jquery表格。验证工作正常,但我希望错误放置正确。现在它在IE 7中显示为:

alt text http://img412.imageshack.us/img412/1810/errorhma.jpg

但我想将其显示为:

alt text http://img520.imageshack.us/img520/7089/error1ace.jpg

这是css代码:

div.error { display:none; }
           <%-- input { border: 1px solid black; }--%>
            input:focus { border: 1px dotted black; }
            input.error { border: 2px solid red; }
            label.error { color: white; font-size:16px; font-family:Nyala; background-color: red }
            label.valid { color: green; }

3 个答案:

答案 0 :(得分:4)

尝试label.error {display:block;}

答案 1 :(得分:3)

您可以使用errorPlacement控制错误消息的位置。默认值为“error.insertAfter(element)”。您可以使用其中一个例如:

errorPlacement: function(error, element) {
    error.insertBefore( element );
    //error.appendTo( element.parent().next() );
    //error.appendTo(label.insertAfter( element ));
    //error.insertAfter(element.sibling(a));
}

甚至在这里放一些条件并使用其他陈述:

errorPlacement: function(error, element) {
    if ( element.is(".something") ) {
        element.nextAll('div').html(error);
    } else {
        error.insertAfter( element );
    }
}

希望有所帮助

答案 2 :(得分:1)

有几个问题,第一个是错误着色显示为围绕输入​​元素元素。因此,您需要使用error div来包含input元素,或者只是更改表单元素的容器颜色。我正在投票改变容器的颜色。

其次,您希望div.error在左侧和右侧清晰(假设您只是更改表单元素的容器颜色),所以只需添加:

div.error {
  clear: both;
}

这当然假设由于某种原因你把它漂浮到左边。在任何情况下,请参阅一个简单的示例,了解一种解决方法

http://jsbin.com/amaxa