0

我有一些表单,如果验证失败,Jquery 会在它前面加上错误消息。当用户再次单击表单时,错误会淡出,这就是问题所在:错误淡出导致表单向上移动一点。这不是什么大问题,但每次看到它真的让我很恼火。尝试通过使用 CSS 和设置不同的 margin-top 等来修复,没有任何帮助。谢谢你的建议。

查询:

$('body').delegate("input#email",'focus',function(){
        $('#errors_of_sign').remove();});

$('body').delegate("input#password",'focus',function(){
        $('#errors_of_sign').remove();});

CSS:

.sign_in {
    display: none;
    position: fixed;
    top: 30%;
    left: 28%;
    border-style: solid;
    border-width: 3px;
    border-color: #c1ffc6;
    background: #fff;
    padding: 2%;
    width: 40%;
    height: 25%;
    font-family: Arial, sans-serif;
    z-index: 9999999;
    font-size: 14px;


}
.signs_form{

    font-family: Arial,Liberation Sans,DejaVu Sans,sans-serif;
    display: inline-block;
    border-right-style: solid;
    padding-right: 10%;
    border-width: 1px;
    border-color: #c1ffc6;


}
.fb_sign {

    display: inline-block;
    vertical-align: 100%;
    margin-left: 10%;


}
#sign_in_fb {
    vertical-align: 100%;

}
4

1 回答 1

1

发生的事情是,当您从 DOM 中删除它时,它显然不再占用空间。因此,只需像这样隐藏它:

$('body').delegate("input#email",'focus',function(){
    $('#errors_of_sign').css('visibility','hidden');
})

$('body').delegate("input#password",'focus',function(){
    $('#errors_of_sign').css('visibility','hidden');
})

编辑: 如果您的 jquery 版本是 1.7 或更高版本,您还应该使用“on”而不是“delegate”

于 2013-05-03T01:03:31.523 回答