2010-06-25 7 views
10

Ich habe den folgenden HTML-Code:jQuery wirft kein Formular

<?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> 

Wenn auf dem submitbutton klicken oder beim Drücken der Enter-Taste, wird das Formular abgeschickt. Aber wenn ich $('#umfrageForm').submit(), $('form').submit() oder etwas Ähnliches versuche, passiert nichts. In Firebug gibt die Funktion nur den DOM-Pfad an das Formularelement zurück.

Was könnte das Problem sein, das die Übermittlung des Formulars verhindert?

+0

Gibt Ihr 'submit'-Handler false oder irgendetwas zurück? Dies verhindert das Standardverhalten, auch was '$ (" form ") [0] .submit();' tut? –

+1

Wann und wo feuern Sie die .submit() Ereignis? –

+0

@Luke: Entweder mit einem Klick Ereignis oder von der Firebug JS Konsole. –

Antwort

46

Sie haben ein Feld submit benannt , dies überlagert die submit Methode des Formulars (mit einem Verweis auf den DOM-Knoten für das Feld), die jQuery in seiner eigenen submit Methode abhängt.

Benennen Sie es um.

+2

Gleiches gilt für id = 'submit' – BIOHAZARD

4

Ich glaube, Sie das Ereignis einreichen Feuer vor dem DOM tatsächlich geladen wird, denn wenn ich es versuchen, dieser Code funktioniert:

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

See: jsFiddle

+0

Itrs mehr als Lily die Tatsache, dass er nicht die $ (Dokument) .ready() -Funktion verwendet. +1 – RobertPitt

+0

Nein, ich habe das Ereignis von der Firebug JS Konsole ausgelöst, also ist das DOM fertig. –

-1

Ja, wenn Sie Eingabeelemente mit dem Namen "submit" haben, finden Sie die $ ('# formID'). Submit(), um sich nicht wie erwartet zu verhalten. Ersetzen Sie einfach den Namen des Eingabefeldes (möglicherweise die Übergabeschaltfläche) durch etwas relevanteres.

Ich weiß, dieser Beitrag ist alt, hatte nur das gleiche Problem für mich und dachte, ich sollte meine Ergebnisse veröffentlichen.

-1

Ich hatte einmal ähnliches Problem. Ihr Code sollte funktionieren, wenn Sie eine Java-Script-Datei bei der Anzeige angeben. Ich vermute jedoch, dass Ihr Code Teil eines größeren HTML-Dokuments ist. Das Problem tritt auf, wenn Sie den Hauptteil Ihres html-Dokuments in ein anderes html-Dokument herunterladen, ohne Java-Skript-Funktionen in das Unterdokument einzubinden (da diese im übergeordneten Dokument enthalten sind). Dann wird es nicht funktionieren. Sie müssen die Java-Script-Datei auch in das Unterdokument einfügen.