2009-05-31 21 views
4

[OK]を、私はいくつかのことを試してみたが、私はここにこだわって...ここで jQueryのvalidation errorPlacementと要素を削除していますか?

は、私が働いているHTMLです:

<div class="required"> 
<label for="paysys_idworldpay" class="labelRadio"> 
<input type="radio" value="worldpay" name="paysys_id" id="paysys_idworldpay" class="inputRadio"/> 
<b>WorldPay</b></label> 
<label for="paysys_idoffline" class="labelRadio"> 
<input type="radio" value="offline" name="paysys_id" id="paysys_idoffline" class="inputRadio"/> 
<b>Paypal</b></label></div> 

<div class="required"> 
<label for="email">Email Address</label> 
<input type="text" value="" name="email" class="required email inputText" id="email" /></div> 

、これは私が持っているコードです。このフォームの検証()関数:今

errorElement: 'p', 
errorClass: 'error', 
errorPlacement: function(error, element) { 
    error.insertBefore(element.prev()); 
    element.parent().addClass('error'); 
}, 
success: function(label){ 
    label.removeClass('error'); 
    label.parent().removeClass('error'); 
} 

、上記のフォームで「電子メール」などのフィールドのためだけで正常に動作し(それは、段落を挿入し、追加するとともに、それをクラス=「エラー」を割り当て、ラップdivのクラスに「エラー」があります)。ただし、ラジオボタンの場合は同じように動作しません。 「エラー」クラスを周囲のラベルに追加し、エラークラスを含む段落を挿入することさえありません。どうして?

私はここで間違っている/何をしていますか?

また、実際に追加された段落を「成功」部分で削除するにはどうすればよいですか?それが今であるため、それだけでそのクラス属性から「エラー」を削除されると、入力フィールドに入力されたすべての文字と、それは、このような別の空の段落を追加します。

<p generated="true" class=""/> 

だから私は束で終わります各フィールドの各divの人の数(入力された文字の数に応じて)...もう一度、私は何が欠けていますか?

答えて

0

FireBugでデバッグを試しましたか?あなたがそれを使用している間、DOMインスペクタを使用してツリー構造があなたの期待に合っていることを確認してください。

+0

何が間違っているのか分かりません... さらに、jQueryでこれらの成功条件をどのように書くか(段落を削除する、DOMを処理するなど)は不明です。 –

3

完全な検証機能を投稿し、フォームにどのように結び付けられているかが分かります。

はそれにもかかわらず、私はカップルの事を指摘できると思う:あなたの電子メールの入力がそのラベルの隣にありながら

あなたのラジオボタンは、そのラベル内にラップされています。あなたのコードが指定されています。

error.insertBefore(element.prev()); 

それは<入力>要素の前の隣人前に、エラーDIVを挿入することを意味しています。ラジオボタンには先行するネイバーがありません。ラベル要素の内側に単独で表示されます。何かが正常に検証されたときには、remove()関数を呼び出す必要があり、<P>タグを削除するために、第二

error.prependTo(element.parents("div.required")).addClass("errorMsg"); 

::このことができます

error.remove(); // assuming "error" is the &lt;P&gt; tag. 

希望をあなたはにコードを変更する必要があります。

関連する問題