2012-03-08 73 views
1

我有一個問題,我的JavaScript插件似乎是衝突,但只有輕微。如果你看看我創建表單的這個fiddle,你會注意到,在創建輸入字段後,然後刪除,警報消息開始彈出下一個元素(在他們最初放置的位置下面)。jquery評論表單驗證errorPlacement阿賈克斯返回

澄清:如果用戶還沒有輸入任何信息,警報會彈出正確的位置(浮動在輸入框右側紅色文本中)。但是,如果用戶輸入了他們的名字,然後刪除了他們的名字,那麼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,但仍然有,我是之前有同樣的問題。嘗試輸入所有元素,然後刪除其中一個字段。該字段的警報消息開始在下面的行上。問題只發生在一個字段被輸入,然後被刪除 – 2012-03-08 07:11:08

+1

我明白你在說什麼,在Firefox(10.0.2)中,這不會按照你描述的方式發生。跳閘驗證,然後刪除一個字段仍將錯誤信息保留在正確的區域,懸停在懸浮在右側的輸入框上。你使用的是什麼瀏覽器? – shanabus 2012-03-08 13:30:12

+0

Hi @shanabus。這個問題出現在我的Firefox 10.0.2版本以及Chrome和Safari上。我不知道如何解釋除此之外:正確鍵入所有字段,然後刪除您的名字。錯誤消息「此字段是必需的」彈出到電子郵件字段中,而不是它所屬的名稱字段。按照上面的建議修改css並不能解決Firefox中的問題。謝謝你的想法 – 2012-03-08 16:57:58