2009-08-07 48 views
1

在此函數中,當字段未驗證時,我在下一個表td中顯示錯誤圖像。它正確地顯示錯誤圖像,但是當字段被刪除時,錯誤圖像不會從下一個td中刪除。我試圖使用「成功」選項,但它不起作用。任何人都可以告訴我確切的代碼。jQuery驗證插件:當字段驗證時如何調用函數

$(obj).find("form").validate({ 

    showErrors: function(errorMap, errorList) { 
     for (key in errorMap) { 
       $('#' + key).parent().next().html("<img id='exclamation' src='images/exclamation.gif' />"); 
     } 
    } 

}); 

回答

0

時候,我得到了我的答案後。事實上,我想在輸入字段的下一列(td)中顯示帶有標註(包含錯誤)的圖像,但未通過驗證插件進行驗證。當一個輸入字段被驗證時,這個錯誤圖像應該被刪除,並在其上標註。

這是我的解決方案。

$("form").validate({ 

    errorPlacement: function(error, element) { 

     //There should be an error 
     if(error.html() != ''){   

      element.parent().next().html("<img id='exclamation' src='images/exclamation.gif' />").callout({ 
       width  : 200, 
       cornerRadius : 8, 
       className : "validationCallout", 
       content  : error, 
       align  : "left", 
       nudgeHorizontal : -14, 
       nudgeVertical : 4, 
       arrowHeight : 6 
      });  
     } 
    }, 

    success: function(label) { 
     $(obj).find(".valid").parent().next().html("");   //remove error image from next column(td) of input containing "valid" class 
     $(obj).find(".valid").parent().next().closeCallout(); //remove callout on error image from next column(td) of input containing "valid" class 
    } 

}); 

此代碼可能很複雜,但它現在對我來說很有用。這裏使用了一個標註插件,它與問題無關,但可以幫助解決問題。 任何人都可以使它更簡單嗎?

+0

您可能需要切換 $(obj).find(「。valid」)。parent()。next()。html(「」); $(OBJ).find( 「有效」。)父()的next()closeCallout()。; ()「。」)。parent()。next().html(「」).closeCallout(); – 2009-08-11 13:19:01

+0

謝謝。這很好。 – NAVEED 2009-08-12 07:23:41

1

創建一個刪除所有錯誤圖像的函數。在成功和showErrors方法的開頭調用它。

+0

成功:function(){alert('Success'); } //即使這個警報沒有顯示在我的上面的函數中。 – NAVEED 2009-08-07 13:01:17

+0

即使單個驗證失敗,也不會調用成功。所有字段驗證是否正常? – kgiannakakis 2009-08-07 14:14:59

+0

單個字段也被驗證時調用成功。最後我得到了我的答案。請看下面。 – NAVEED 2009-08-11 06:11:56

2

你可能想看看errorPlacement選項。

看到Remember the milk demo

從那裏:

errorPlacement: function(error, element) { 
    if (element.is(":radio")) 
     error.appendTo(element.parent().next().next()); 
    else if (element.is(":checkbox")) 
     error.appendTo (element.next()); 
    else 
     error.appendTo(element.parent().next()); 
} 

定製,以便放置在正確的地方您的錯誤信息(相鄰TD)

+0

我必須使用我自己的錯誤消息(帶有標註插件的圖像)。因此,我使用showErrors選項在foor循環中使用任何東西。 你能告訴我如何使用errorPlacement選項顯示我自己的錯誤消息/圖像。 – NAVEED 2009-08-07 12:41:17

+0

我相信你可以,而不是error.appendTo,做一些像getMySpecialMarkupFrom(error).appendTo(wherever) – 2009-08-10 09:35:37

+0

是的,它幫助了我。謝謝。請參閱下面的答案。 – NAVEED 2009-08-11 06:13:06

相關問題