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/>');}
}
});
}
感謝您的任何幫助。
謝謝您的輸入@shanabus,但仍然有,我是之前有同樣的問題。嘗試輸入所有元素,然後刪除其中一個字段。該字段的警報消息開始在下面的行上。問題只發生在一個字段被輸入,然後被刪除 – 2012-03-08 07:11:08
我明白你在說什麼,在Firefox(10.0.2)中,這不會按照你描述的方式發生。跳閘驗證,然後刪除一個字段仍將錯誤信息保留在正確的區域,懸停在懸浮在右側的輸入框上。你使用的是什麼瀏覽器? – shanabus 2012-03-08 13:30:12
Hi @shanabus。這個問題出現在我的Firefox 10.0.2版本以及Chrome和Safari上。我不知道如何解釋除此之外:正確鍵入所有字段,然後刪除您的名字。錯誤消息「此字段是必需的」彈出到電子郵件字段中,而不是它所屬的名稱字段。按照上面的建議修改css並不能解決Firefox中的問題。謝謝你的想法 – 2012-03-08 16:57:58