2012-12-08 13 views
8

Mam ten fragment kodu:Formularz nie jest wyświetlana, ale jego treść nie

<div> 
    <form name='profileForm' id='profileForm' action='' method='get'> 
     <input type='submit' name='ProfileBtn' id='ProfileBtn' class='buttonC' value='My Profile' /> 
    </form> 
<br /> 
    <form name='logoutForm' id='logoutForm' action='' method='get'> 
     <input type='submit' name='LogOutBtn' id='LogOutBtn' class='buttonC' value='Logout' /> 
    </form> 
</div> 

Kiedy spowodować, że nad „profileForm” nie pojawia się (chociaż profileBtn wydaje). wydzielona forma nie ma problemów, co jest dziwne, ponieważ oba są podobne.

To prawdopodobnie łatwe pytanie, ale nie mam pojęcia, na czym polega problem.

+0

co masz na myśli "formularz profilu nie pojawia się, ale przycisk ma"? Element formularza jest po prostu kontenerem, jak element div, a jeśli nie ma dołączonego do niego kodu CSS, nie pojawi się na stronie. Jeśli chcesz, aby była widoczna, dołącz obramowanie lub tło z CSS do elementu formularza – Matanya

+0

Musisz zademonstrować ten problem, ponieważ nie ma oczywistego problemu z opublikowanym html. –

+0

cóż, to dziwne [link] (http://jsfiddle.net/33G5N/), tutaj działa dobrze, ale kiedy uruchamiam moją stronę i sprawdzam konsolę programisty, profilBtn nie jest otoczony żadną postacią @Matanya miałem na myśli konsola programisty. –

Odpowiedz

6

Cóż, wtedy jakiś dziwny problem z formularzami, przycisk się nie pojawił, ponieważ kiedy uruchomiłem stronę internetową, "profilForm" po prostu zniknął jakoś (i nie pojawił się w konsoli). to, co zrobiłem, to dodanie trzeciego formularza przed "profilForm", który jakoś to rozwiązał.

+0

To też stało się dla mnie, ponieważ nie ma dostatecznie wyjaśnionego powodu i tego " naprawić "działało. W dużym stopniu korzystałem z szablonów piramid i mako oprócz css/javascript. Ugh. Być może to błąd w przeglądarce? – NuclearPeon

+0

Weirdly to rozwiązanie zadziałało również dla mnie. –

+0

To naprawdę dziwne. To też było moje rozwiązanie. Pracował jak urok ... nie wiem dlaczego. – foxtangocharlie

1

Sprawdź, czy nie masz niezamkniętego elementu formularza przed otwarciem następnego formularza.

Jeśli to zrobisz, przeglądarki wygenerują źródło bez wyświetlania kolejnego formularza otwartego i tworzą bliską parę.

14

Po prostu przydarzyło mi się korzystanie z Chrome - to dlatego, że miałem formularz w formularzu. Wygląda na to, że Chrome właśnie usunął tag otwierający i zamykający < >, ponieważ mój formularz znajdował się w innej formie. Kiedy przeniosłem jedną formę poza drugą, oba znaczniki były renderowane w html zgodnie z przeznaczeniem.
Crackermann miał również na to odpowiedź.

Trudno podać bezpośrednie rozwiązanie, nie widząc swojego pełnego html, ale domyślam się, że to jest twój problem - musisz upewnić się, że formularz nie znajduje się w innej formie. Bardzo prosty przykład ilustrujący to:

form w innej formie, zawiadomienia, jeśli uruchomić ten kod w Chrome i sprawdzić < formularza id = "Form2"> nie jest renderowany:

<html> 
 
<head></head> 
 
<body> 
 
\t <form id="form1"> 
 
\t \t <div>form within a form</div> 
 
\t \t <form id="form2"> 
 
\t \t \t <input type="text" placeholder="name" /><br/> 
 
\t \t \t <input type="text" placeholder="title" /> 
 
\t \t </form> 
 
\t </form> 
 
</body> 
 
</html>

Jeśli przesuniesz Form2 poza form1, uruchomić kod w Chrome i sprawdzić, następnie < forma id = "Form2">jest renderowane:

<html> 
 
<head></head> 
 
<body> 
 
\t <form id="form1"> 
 
\t \t <div>form2 moved outside of form1</div> 
 
\t </form> 
 
\t 
 
\t <form id="form2"> 
 
\t \t <input type="text" placeholder="name" /><br/> 
 
\t \t <input type="text" placeholder="title" /> 
 
\t </form> 
 
</body> 
 
</html>

+0

Idealne rozwiązanie! – Chip

+0

To był zawsze problem. Prawidłowa odpowiedź. –

2

Jest unclosed w kodzie przed tymi liniami,

Find and close that form 

LUB

wystarczy umieścić </form> przed kodzie.

Powiązane problemy