2013-08-27 9 views
5

Chcę złożyć sekcję formularza bez ustawiania jej display na none. Jeśli ustawię wartość display na none, sprawdzanie poprawności jest pomijane, dlatego nie chcę ustawiać wartości display na none. Wiem, że mogę ustawić widoczność na hidden i visible, ale to rozwiązanie nie jest możliwe do renderowania widoku, ponieważ pozostaje tam miejsce na złożoną sekcję. Powoduje to bardzo dziwny wygląd widoku przy pustym białym polu bez zawartości.ukryj element bez ustawiania wyświetlania na żaden w jquery

Moje pytanie brzmi: ukryć sekcję formularza html (bez umieszczania w niej symbolu zastępczego) bez ustawiania jej display na none, aby móc nadal wykonywać sprawdzanie poprawności.

Niektóre kod HTML:

<td style="margin: 5px; border-bottom: 1px solid; display:none; overflow: hidden;" colspan="3"> 
    <div>...</div> 
</td> 

display jest początkowo ustawiona na none, ale po rozłożeniu jest po raz pierwszy, jestem ustawiania height do 100% i usuwanie styl display.

+0

... po prostu animując wysokość kontenera? –

+1

ustawić wysokość na 0? – Harry

+0

można użyć jquery hide() – Sasidharan

Odpowiedz

12

można przenieść go z ekranu:

$(elem).css("position", "absolute").css("left", -9999); 

Albo ustaw jego wysokość 0:

$(elem).css("height", 0); 
+2

Ustawienie wysokości elementu na "0" nie wystarcza elementom 'inline' –

+3

Do ustawienia 'height' to' 0' 'overflow' powinno być ustawione na' hidden' –

+0

@niese lub 'auto' –

2

Ustaw krycie elementu 0.

$(elem).css("opacity", 0); 
+1

To jak ustawienie 'widoczności' na' ukryte'. –

+0

to nie dostosowuje dom przesuwając resztę treści w górę ... pozostaje na niej białe spacje, które dla ukrytej sekcji –

+0

przepraszam, nie jestem zbyt dobry w css, myślę, że to może działać tutaj ' $ (elem) .css ("tekst-wcięcie", 9999px); ' –

0
$("#ele").css({"height" : 0, "width" : 0, "opacity" : 0}); 
-1

Chcesz ustawić wysokość kontenera na 0, a przelew na ukryty.

+1

nie działa ... –

0

Ukrywanie elementu z jQuery ...

$('element').addClass('hidden'); 

iw swoim CSS po prostu wykorzystać to, co kiedykolwiek znaleźć odpowiednie, aby ten element "ukryte"

.hidden{ 
    /* whatever you find appropriate */ 
} 
+3

TzoLy ... czy wiesz, co stanie się z elementem, jeśli ustawisz' .hide() '? –

+1

Jeśli nie, powiem Wam: Element.style 'display: none;' jest do niego stosowany. ** Zmieniono twoją odpowiedź **. –

4

Najprostszym sposobem fałszywego display:none polega na ustawieniu pozycji na absolutną (tak, aby element został wyjęty z przepływu, nie wpływający już na renderowanie elementów zewnętrznych) i widoczność ukryta (aby nie była już pomalowana).

$(elem).css('visibility', 'hidden').css('position','absolute'); 
Powiązane problemy