2011-12-29 10 views
0

私はいくつかのフォームを検証するために、最新のjQueryライブラリとjQueryの検証プラグインを使用しています:jQueryのプラグイン::検証/検証 - errorPlacementが実行されていません...(アニメーション)

私はいくつかのフォームを配置しています私のフッターで検証してください。いくつかのエラーメッセージが表示されるとすぐに、フッターをアニメーション化して伸ばす必要があります。 検証は正常に動作しますが、errorPlacementはまったく呼び出されません。 また、validate()には既にerrorPlacementのデフォルトアクションがありますが、これは私が上書きする必要があります(ここではjQuery Validation 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が正しく呼び出されていないというヒントですね。

すべてが正常であればsubmitHandlerが呼び出されることは明らかです。 私はアニメーションを2回だけします。私のprocess.php によって生成され、エラーが表示される必要がある場合に限り、最後のメッセージ '成功したサブスクリプティングblablaを表示する場所を1回。

まあ私は間違いなくこのinvalidHandlerを見ていきます。今はThx。

答えて

1

私はあなたのコード内の二つのことに気づく:

  1. あなたのルールやメッセージは空です。
  2. errorPlacementの形式はfunction(error, element) { }です。表示するには、errorオブジェクトをページのどこかに配置する必要があります。このメソッドは、フォーム上の各エラーに対して呼び出されるため、これを達成しようとしているとは思われません。

invalidHandlerオプションを使用することをおすすめします。これにより、フォームに検証エラーがあるときにアニメーションを行うことができます。

EDIT:注:フォームの検証エラーががない場合submitHandlerと呼ばれています。

+0

私は時間制限のためにまだ答えられませんでした。 私は自分の投稿を編集して回答を投稿しなければならなかった。 こちらをお読みください... – Merc

関連する問題