1

私のウェブサイト ( http://www.jakelazaroff.com/#contact ) に、jQuery で送信するフォームがあります。フォームが正常に送信されたときのコールバック関数は、フォームをフェードアウトさせるはずです。ただし、何らかの理由で、これは特定のブラウザーと OS の組み合わせでのみ機能します。現在、互換性リストは次のとおりです。

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

...奇妙なリストです (Mac OS 10.6.2 の Firefox 3.5.5 では動作しますが、Mac OS 10.5.8 の Firefox 3.5.5 では動作しませんか?)。フォームの検証/送信に使用するコードとコールバック関数は次のとおりです。

// 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/にあります。 . 互換性を壊している何かが欠けていますか?

ありがとう :)

PS申し訳ありませんが、リンクとして使用しているプラ​​グインの URL をフォーマットしていませんでした。10 の評価ポイントが得られるまで、複数のリンクを投稿することはできません。
PPS よし、これを投稿して評判ポイントが 10 ポイント増えたので、使用しているプラ​​グインの URL がリンクになりました。

4

2 に答える 2

0

うまくいかないのはフェードだけですか?これらの行は疑わしいようです:

  formWrapper.height(formWrapper.height());
  formBlurb.height(formBlurb.height());

すでに存在する高さを設定しようとしているのはなぜですか?

于 2009-12-14T08:40:59.367 に答える
0

原因は、「success: formHide」の括弧の省略にあるようです。それでいいのかと思っていたのですが、どうやらそうではないようです。

于 2009-12-14T08:41:39.957 に答える