2009-05-06 90 views
1

我有一个jQuery表单。验证工作正常,但我想错误被正确放置。现在它显示在IE 7为:jquery错误位置

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; } 

回答

4

尝试label.error一个简单的例子{显示:块;}

1

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

其次,你想要的div.error要对左边和右边清晰(假设你只是改变了形式元素容器的颜色),所以只需要添加:

div.error { 
    clear: both; 
} 

这当然假设你出于某种原因将它漂浮在左边。在任何情况下,看到的是什么一种方式打下出来

http://jsbin.com/amaxa

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); 
    } 
} 

希望它可以帮助