2012-03-08 567 views
1

私のjavascriptプラグインが矛盾しているように見えますが、わずかに問題があります。フォームを作成しているfiddleを見ると、入力フィールドが作成されて削除された後、次の要素(最初に配置された場所の下)に警告メッセージがポップアップして表示されます。jqueryコメントフォームのバリデーションerrorPlacement ajax return

明確にする:ユーザがまだ情報を入力していない場合、アラートは正しい位置にポップアップ表示されます(赤いテキストで入力フィールドの右側に浮かべます)。ただし、ユーザーが名前を入力してから名前を削除すると、Ajaxアラート(「このフィールドは必須です」)が、想定されている場所の下のフィールドに間違った場所にポップアップ表示されます。この問題は、JavaScriptのこの部分を含めた後に表示されます(ページ上の別のメニューを制御します):

/* jQuery Content Panel Switcher JS */ 
var jcps = {}; 
jcps.fader = function(speed, target, panel) { 
    jcps.show(target, panel); 
    if (panel == null) {panel = ''}; 
    $('.switcher' + panel).click(function() { 
     var _contentId = '#' + $(this).attr('id') + '-content'; 
     var _content = $(_contentId).html(); 
     if (speed == 0) { 
      $(target).html(_content); 
     } 
     else {  
      $(target).fadeToggle(speed, function(){$(this).html(_content);}).fadeToggle(speed); 
     } 
    }); 
}; 
jcps.slider = function(speed, target, panel) { 
    jcps.show(target, panel); 
    if (panel == null) {panel = ''}; 
    $('.switcher' + panel).click(function() { 
     var _contentId = '#' + $(this).attr('id') + '-content'; 
     var _content = $(_contentId).html(); 
     if (speed == 0) { 
      $(target).html(_content); 
     } 
     else {  
      $(target).slideToggle(speed, function(){$(this).html(_content);}).slideToggle(speed); 
     } 
    }); 
}; 
jcps.show = function (target, panel) { 
$('.show').each(function() { 
    if (panel == null) { 
     $(target).append($(this).html() + '<br/>'); 
    } 
    else { 
     var trimPanel = panel.replace('.', ''); 
     if ($(this).hasClass(trimPanel) == true){$(target).append($(this).html() + '<br/>');} 
    } 
}); 
} 

ありがとうございました。

答えて

1

あなたは正しいCSSの競合があるかもしれないと思っていますが、label.error要素のCSSを修正することで、私が望む影響に近いと思いました。

label.error { color: red; position: relative; float: right: top: -30px; } 

例:http://jsfiddle.net/shanabus/kmJ87/1/

+0

は、あなたの入力@shanabusいただきありがとうございますが、それでも私は前に持っていた同じ問題を抱えて。すべての要素を入力してから、フィールドの1つを削除してみてください。そのフィールドのアラートメッセージは、下の行に表示されます。この問題は、フィールドが入力されてから削除されたときにのみ発生します。 –

+1

あなたの言っていることを理解していますが、Firefox(10.0.2)ではこれは記述方法とは異なります。トリッピングの検証でフィールドを削除しても、正しい領域にエラーメッセージが残っていて、右側の浮動小数点入力ボックスの上に浮かびます。どのブラウザを使用していますか? – shanabus

+0

こんにちは@シャナバス。この問題は、Firefox 10.0.2の私のバージョンと、ChromeとSafariに表示されます。私はこれ以外の説明が他に何か分かっていません。すべてのフィールドを正しく入力してからあなたの名前を削除してください。 「このフィールドは必須です」というエラーメッセージが、メールフィールドに表示され、名前フィールドには表示されません。上記のようにCSSを変更しても、Firefoxの問題は解決されません。あなたのアイデアをありがとう –

関連する問題