2009-05-06 77 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); 
    } 
} 

希望它可以幫助