检查这个 JS 小提琴。http://jsfiddle.net/jclamp/Nf7Fc/3/
Name 的标签是通过 jquery 创建的,然后可以使用它的父字段的位置来设置它的位置。
电子邮件标签是通过表单验证创建的。同一个 jquery 应该能够设置它的位置,但它不能。为什么?
作品:
$('#name').after('<label class="error" for="name">I can create this label via jquery and then move it\'s position.</label><br>');
$('label.error').css('left',
function() {
return $('input[name='+$(this).attr('for')+']' ).offset().left;
}
);
不起作用:
$("#registerForm").validate();
$('label.error').css('left',
function() {
return $('input[name='+$(this).attr('for')+']' ).offset().left;
}
);