2011-12-29 75 views
0

我使用的是最新的jQuery庫和JQuery驗證插件來驗證某種形式:jQuery插件:驗證/驗證 - 不執行errorPlacement ...(動畫)

我已經把某種形式在我的頁腳驗證。只要顯示一些錯誤消息,我的頁腳應該是動畫和拉伸的。 驗證工作好,只是errorPlacement根本沒有被調用。 我也讀過(這裏:jQuery Validation errorPlacement ),那validate()已經有一個errorPlacement默認動作,應該被我的覆蓋。 (我想用下面的代碼我的消息將不會得到了顯示,右

我想(當然與其他元素,以及(消息/規則):

$(document).ready(function(){ //.ready -> steht erst nach dem Laden des DOMs zur Verfügung 
$("#nlForm").validate({ 

debug: true, 
onfocusout: false, 
onKeyUp: false, 
errorLabelContainer: $("#results"), 
wrapper: "li", //wrapping the errormessages in <li> 

rules: { }, 
messages: { }, 

errorPlacement: function() { 
    $("#footer").animate({ 
    height: "300px", 
}, 1500); 
}, 

submitHandler: function(form) { 
    $('#results').css('display', 'none') //hides my results-div in the beginning 

    $("#footer").animate({ 
     height: "300px", 
    }, 1500); 

    var docHeight = $(document).height(); 
    var windowHeight = $(window).height(); 
    var footerheight = 70; //additional pixels of stretched footer 
    var scrollPos = docHeight - windowHeight + footerheight; 

    $('html, body').animate({ //scrolling down 
     scrollTop: scrollPos+'px' 
    }, 1500); 

    $.post('/process.php', $("#nlForm").serialize(), function(data) { 
     $('#results').html(data); 
    }); 

$('#results').fadeIn(1500); //fades in my results-div 

} 
}); 
}); 

它不會給我任何錯誤,但它並沒有任何動畫。 我不知道爲什麼叫我errorPlacement功能未啓用。(我也嘗試添加

document.write('hi there') 

只是不要看,如果函數被調用。但事實並非如此.. 。

如果有人可以發佈一些正在工作的簡單示例,我將非常高興。 或者只是告訴我我可以改變什麼...

此外,我打算動畫錯誤的外觀也是如此。任何想法如何實現? 我必須得到即將在我的results-div中生成的標籤對象。 我該如何解決這個問題?

由於已經

歡呼

(SRY順便說一句,在錯誤的地方在第一時間發佈。)

-------不幸的是我不能發表任何答案但我必須編輯我的文章------- 答案:

感謝您的回答; 至1。我知道我只是省略了它們。

rules: { 
     nlName: { 
      rangelength: [3, 25], // muss zwischen 3 und 25 zeichen lang sein. 
      required: true, 
      notName: true, 
     }, 
     nlEmail: { 
      required: true, 
      email: true, //has to be a valid email, returns true if so. 
     } 
    }, //ohne Komma gehts nicht... 
    messages: { 
     nlName: { 
    required: "Bitten geben Sie einen Namen ein", 
    notName: "Ihr Name lautet nicht 'Name'!", 
    rangelength: "Ihr Name muss zwischen 3 und 25 Zeichen lang sein.", 
    }, 
     nlEmail: "Ihre Emailadresse scheint ungültig zu sein", 
    }, 

因爲它主要是德語,這部分效果很好。 我不明白'你的形式'是什麼意思? 你的意思是沒有代碼將錯誤放在任何地方?這是真的,我直到現在才這麼做。我通過正常的信息顯示出來。 但是,我的錯誤仍然顯示暗示我的errorPlacement沒有正確調用,不是嗎?

只有當everythings確定時纔會調用submitHandler。 我只做了兩次動畫。一旦有地方顯示最終消息'成功subscripion blabla,由我的process.php生成 和一旦只有如果錯誤必須顯示...

那麼我一定會看看這個invalidHandler。 Thx現在。

回答

1

我注意到在你的代碼的兩件事情:

  1. 你的規則和消息是空的。
  2. errorPlacement的格式爲:function(error, element) { }如果您希望它出現,您需要將error對象放置在頁面的某個位置。此方法針對表單上的每個錯誤進行調用,所以我不認爲這是您要實現的目標。

我建議您使用invalidHandler選項。這允許您在表單上存在驗證錯誤時執行動畫。

編輯:注:submitHandler被稱爲如果有形態沒有驗證錯誤

+0

由於時間的限制,我無法回答。 所以我不得不通過編輯我的帖子發佈我的答案。 請閱讀... – Merc 2011-12-29 17:39:51