2013-05-03 63 views
0

我有一些表單,如果驗證失敗,jquery將它與錯誤消息相提並論。 當用戶再次單擊窗體時,錯誤消失,這是問題:錯誤淡出導致窗體稍微向上移動。 不像這是個大問題,但每次看到它都會讓我很煩惱。試圖通過玩CSS和設置不同的margin-top等來修復,沒有任何幫助。 謝謝你的建議。JS腳本導致很少的轉變,我如何防止它?

的Jquery:

$('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%; 

} 
+0

你應該提供一些代碼 – jah 2013-05-03 00:50:52

+0

它真的很平常,但是好的 – 2013-05-03 00:54:06

+0

jQuery的外觀如何淡化錯誤? – jah 2013-05-03 00:57:35

回答

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或更高版本

+0

嗯......用這些代碼什麼也沒有發生在所有的錯誤信息 – 2013-05-03 01:08:39

+0

哎呀抱歉,它應該被隱藏,而不是沒有。我編輯了我的答案。 – jah 2013-05-03 01:11:15

+0

是的,這是有效的,我也想出了與我的CSS設置爲白色的錯誤背景顏色也做得很相似) – 2013-05-03 01:13:29