2010-06-25 11 views
10

Mam następujący kod HTML:jQuery nie przedłoży formularz

<?xml version="1.0" encoding="utf-8" ?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
    <title>IT-Services Umfrage - Fragen</title> 

    <link rel="stylesheet" type="text/css" href="/IT/umfrage/../../style.css" /> 
    <link rel="stylesheet" type="text/css" href="/IT/umfrage/css/umfrage.css" /> 

    <script type="text/javascript" src="/IT/umfrage/../../inc/jquery-1.4.2.js"></script> 
    <script type="text/javascript" src="/IT/umfrage/js/umfrage.js"></script> 
</head> 

<body id="page-show"> 
    <div class="ueberschriftsbalken"><span>IT-Services Umfrage - Fragen</span></div> 
    <br /> 
    <div id="content"> 

     <form action="/IT/umfrage/Umfrage/save" method="post" id="umfrageForm"> 
      <div class="frage radio"> 
       <p>1. Wie professionell empfinden Sie das Auftreten der IT-Service Anlaufstelle?</p> 
       <label for="frage1_1"><input type="radio" name="frage1" id="frage1_1" value="1" /> Lausig</label><br /> 
       <label for="frage1_2"><input type="radio" name="frage1" id="frage1_2" value="2" /> Schwach</label><br /> 
       <label for="frage1_3"><input type="radio" name="frage1" id="frage1_3" value="3" /> Durchschnittlich</label><br /> 
       <label for="frage1_4"><input type="radio" name="frage1" id="frage1_4" value="4" /> Gut</label><br /> 
       <label for="frage1_5"><input type="radio" name="frage1" id="frage1_5" value="5" /> Hervorragend</label> 
      </div> 
      <input type="submit" value="Antworten absenden" name="submit" id="submitbutton" /> 
     </form> 
    </div> 
</body> 
</html> 

Po kliknięciu na submitButton lub po naciśnięciu klawisza enter, formularz zostanie przekazany. Ale kiedy próbuję $('#umfrageForm').submit(), $('form').submit() lub coś podobnego, nic się nie dzieje. W Firebug funkcja zwraca tylko ścieżkę DOM do elementu formularza.

Jaki może być problem uniemożliwiający przesłanie formularza?

+0

Czy Twój program obsługi "submit" zwraca wartość false lub cokolwiek? Zapobiegnie to domyślnemu zachowaniu, a także temu, co robi '$ (" form ") [0] .submit();' zrobić? –

+1

kiedy i gdzie wystrzeliwujesz zdarzenie .submit() ? –

+0

@Luke: Zdarzenie z kliknięciem przycisku lub z konsoli JS Firebug. –

Odpowiedz

46

mieć pole o nazwie submit , to powoduje oderwanie metody postaci (z odniesieniem do węzła DOM dla pola), od której zależy jQuery w swojej własnej metodzie submit.

Zmień nazwę.

+2

To samo dotyczy id = 'submit' – BIOHAZARD

4

Chyba pożaru złożyć razie przed DOM jest właściwie załadowany, bo gdy próbuję go, ten kod działa:

$(document).ready(function(){ 

    // Submit handler, to prove everything works fine 
    $('#umfrageForm').submit(function(){ 
     alert('hi'); 
     return false; 
    }); 

    // Fire the submit event 
    $('#umfrageForm').submit(); // alerts 'hi' 
}); 

Patrz: jsFiddle

+0

To więcej niż lilia, że ​​nie używa funkcji $ (document) .ready(). +1 – RobertPitt

+0

Nie, wystrzeliłem zdarzenie z konsoli Firebug JS, więc DOM jest gotowy. –

-1

Tak, jeśli masz elementy wejściowe o nazwie "wyślij", znajdziesz $ ("# formID"). Submit(), aby nie zachowywać się zgodnie z oczekiwaniami. Wystarczy zamienić nazwę pola wejściowego (może to być przycisk przesyłania) na coś bardziej istotnego.

Wiem, że ten post jest stary, po prostu miał ten sam problem dla mnie i pomyślałem, że powinienem opublikować moje ustalenia.

-1

Miałem kiedyś podobny problem. Twój kod powinien działać, jeśli włączysz plik skryptu Java podczas wyświetlania. Podejrzewam jednak, że twój kod jest częścią większego dokumentu HTML. Problem powstaje, gdy pobierasz część treści dokumentu HTML do innego dokumentu HTML bez uwzględniania funkcji skryptu Java w pod-dokumencie (ponieważ są one zawarte w dokumencie nadrzędnym). Wtedy to nie zadziała. Musisz dołączyć plik skryptu Java również w pod-dokumencie.

Powiązane problemy