我遇到了我的jQuery表單問題。如果你看看我創建表單的這個fiddle,你會注意到,在創建輸入字段後,然後刪除,警報消息開始彈出下一個元素(在他們最初放置的位置下面)。JQuery衝突Ajax驗證消息返回位置
澄清:如果用戶還沒有輸入任何信息,警報會彈出正確的位置(浮動在輸入框右側紅色文本中)。但是,如果用戶輸入了信息,然後將其刪除,那麼ajax警報(「此字段是必需的」)會彈出錯誤的地方,並顯示在下面的字段中。要查看問題,請正確輸入所有字段,然後刪除您的姓名。電子郵件字段中彈出消息「此字段是必需的」,但它屬於名稱字段。
控制的驗證是JS:
$(document).ready(function() {
$('#commentForm').validate({
submitHandler: function(form) {
$.ajax({
type: 'POST',
url: 'process.php',
data: $(this).serialize(),
success: function(returnedData) {
$('#commentForm').append(returnedData);
}
});
return false;
},
errorPlacement: function(error, element) {
error.insertAfter(element).position({
my:'right top',
at:'right top',
of:element
});
}
});
});
編輯1:使用jQuery NoConflict模式 沒有解決這個問題。這似乎是兩個插件如何協同工作的問題。
編輯2: 這個問題實際上有兩種解決方案。一種是將jquery UI腳本包含在頭部,從而使其「位置」實用程序能夠在「右上方」對齊錯誤消息。
另一種解決方案,如通過幾個其他貢獻者指出的,是要修改的CSS設置
form p {
position: relative; /* This ensures error label is positioned within the p tag */
}
label.error {
top: 0; /* This ensures that it lines up with the top of the input */
right:90px;
color: red;
position:absolute;
}
感謝所有的輸入的。
只是爲了澄清插件之間沒有衝突http://jsfiddle.net/AstDerek/ kmJ87/19/ – 2012-03-15 09:17:21