2011-09-09 50 views
0

我有一個隱藏的div,我用jQuery slideDown()slideUp()顯示。我隱藏div有我使用,當該字段爲空我使用CSS,像這樣將焦點設置形式:如果我使用jQuery隱藏面板,設置如何恢復?

$('#form').submit(function(){ 
    var name = $('.name').val(); 
    if(name == '') { 
    $('.name').focus().css({'border':'1px solid #f00'}); 
    } 
    // here goes ajax code 
    return false; 
}); 

我展示的是設置這樣的形式:

$('.show_hidden_form').click(function(){ 
    $('#form_div').slideDown('slow'); 
}); 

的形式是隱藏的是這樣的:

$('.hide_hidden_form').click(function(){ 
    $('#form_div').slideUp('slow'); 
}); 

但是,當我隱藏div(其中包含的形式)出現我的問題。我希望它重置默認窗體樣式。

這可能嗎?如果是這樣,我該怎麼做?

+0

對不起,如果我想念你,但是你想從div類中刪除1px的邊框嗎? 如果是這樣,你可以添加$('。name')。css({'border':'0'});在slideUp('slow')之後; 如果這是你問的問題,我可以更詳細地解釋一下嗎? – Joe

回答

0

只需添加一個回調函數,效果基本show:

$('.hide_hidden_form').click(function(){ 
    $('#form_div').slideUp('slow', function() { 
     $('.name').focus().css({'border':'0'}); 
    }); 
}); 

(順便說一句,你真的應該使用ID爲「姓名」字段,而不是一類,因爲很明顯,你只需要其中的一個。)

+0

偉大的建議,這是一個ID,而不是一個班,這是一個錯字,謝謝你 – ttyinf0

3

您可以包含默認樣式這種形式和另一個(或多個類)來描述其他國家一類(即不是默認值),然後使用

$('#myForm').addClass('submitted') 

$('#myForm').removeClass('defualt') 

:)

+0

我認爲這是最好的解決方案,向css文件中添加類並在需要時調用它們或刪除它們。 JQuery應該包含一個resetDefault或類似的情況,謝謝艾哈邁德,你有答案我猜測它應該是解決方案 – ttyinf0

+0

@JMR:不客氣:)如果你喜歡它upvote :) :) –

+0

@ ttyinf0 can you PLZ接受答案:) –

1

只需撥動類來代替。建議使用切換類,因爲它更快,更容易維護,並將樣式與代碼分開。

//add to your css file 
border { border: 1px solid #f00; } 

//when focus show the border 
$('.name').focus().addClass('border'); 

//when unfocus remove the border 
$('.hide_hidden_form').click(function(){ 
    $('#form_div').slideUp('slow'); 
    $('.name').removeClass('border'); 
}); 
相關問題