我在我的網站上有一個表格(http://www.jakelazaroff.com/#contact),我用jQuery提交。表單成功提交時的回調函數應該使表單消失;但是,由於某些原因,這隻適用於某些瀏覽器/操作系統組合。眼下,兼容性列表如下:jQuery Form回調兼容性問題
WORKS
o firefox 3.0, xp
o firefox 3.0.14, vista
o firefox 3.0.15, vista
o firefox 3.5.5, os 10.6.2
v chrome 4.0.249.30, os 10.6.2
o chrome 3.0.195.33, w7
DOESNT WORK
o safari 4.0.4, os 10.6.2
o safari 4.0.3, os 10.5.8
o firefox 3.5.5, w7
o firefox 3.5.5, os 10.5.8
o chrome 3.0.195.33, vista
o = unreproduced, v = reproduced, x = conflicting
...這是一個奇怪的列表(它在Firefox 3.5.5在Mac OS 10.6.2,但不能在Firefox 3.5.5運行在Mac Os 10.5.8?)。我用它來驗證/提交表單的代碼,回調函數,如下:
// hide the form and display success message (called after form is submitted)
function formHide() {
// cache form wrapper and blurb
var formWrapper = $("#contactForm");
var formBlurb = $("#contact .formBlurb");
// set the height of wrapper and blurb
formWrapper.height(formWrapper.height());
formBlurb.height(formBlurb.height());
// fade out required fields message, fade in success message
formBlurb.find(".requiredFields").fadeOut("fast", function() {
formBlurb.find(".thanks").fadeIn("fast");
});
// fade out form
formWrapper.find("form").fadeOut("slow", function(){
// slide up the div so there's no jump
formWrapper.slideUp("slow");
});
}
// cache the form
var form = $("#contactForm form");
// validate the form
$("#contactForm form").validate({
// when errors are made...
errorPlacement: function() {
// turn the background on those elements red
$("#contactForm form .error").animate({ backgroundColor:"#ff6666" }, "fast");
},
// when submitting the form...
submitHandler: function(form){
$(form).ajaxSubmit({
// use fm.pl as the submission script
url: "cgi-bin/fm.pl",
// hide the form if it's successful
success: formHide
});
}
});
我使用這個插件可以在http://malsup.com/jquery/form/發現,我用的是驗證插件可以在http://bassistance.de/jquery-plugins/jquery-plugin-validation/找到。有什麼我錯過了打破兼容性?
謝謝:)
P.S.
對不起,我沒有格式化我用作鏈接的插件的URL - 我無法發佈多個鏈接,直到我有10個聲望點。
P.P.S.好吧,發佈這個信息給了我10個聲望點,所以我使用的插件的URL現在是鏈接。
+1也讓你10分:)現在你可以編輯你的文章! – Rippo 2009-12-14 07:48:35