jQuery form.submit() erfrischende Seite anstelle der Einreichung

Ich mit .submit() zu erkennen, wenn ein Formular abgeschickt wird, aber anstelle der Durchführung Ihrer zugehörigen Funktion, es ist erfrischend die Seite.

Ich Baue ein tool zum zeichnen von Stammbaum-Diagramme (mit verschachtelten Listen) an http://chris-armstrong.com/familytree .

Hinzufügen ein Nachkomme ist, drehen Sie die Steuerelemente auf, und es fügt <li class="add_member">+</li> jedem <ul> (oder generation).

Wenn Sie auf ein <li class="add_member">+</li> element ist, ersetzt es das + mit einem <form class="add_member> bestehend aus einem <input> und ein <submit> - Taste. Ich habe dann verwendet $("form.add_member").submit() zu erkennen, wenn der submit-button geklickt wird, und es sollte ersetzen Sie dann die form mit dem Inhalt der <input> jedoch an dieser Stelle nur die Seite aktualisiert (und fügt ein ? der URL).

Irgendwelche Ideen was ich falsch mache? Ich habe befestigt die ganze Funktion unten.

function addAddListeners() {
            $('li.add_member').click(function(){

            //create input form
            $(this).html("<form class='add_member'><input id='fn_' placeholder='Name' required autofocus /><button type='submit'>Add</button></form>")

            //listen for input form submission
            $("form.add_member").submit(function(){

            //if input form isn't blank, create new li element with content of form, else go back to the add_member li
            if($('form.add_member').val()) {
                        $(this).replaceWith('<li><span class="vcard" title="Click to edit this members details"><span class="edit fn">'+$('input#fn_').val()+'</span></span><ul><li class="add_member">+</li></ul></li><li class="add_member">+</li>'); 
                        addEditListeners();
                        addAddListeners();  
                    } else {
                        alert("no change");
                    $(this).html("+");
                    }
                });

            });
        }

BEARBEITEN: Hinzufügen return false; hält die Seite erfrischend, aber die Funktion beigefügt .submit() scheint nicht zu feuern ab, irgendwelche Ideen, warum?

hinzufügen retrun falschen Ende...des Formular-submit-Funktion///
ich fügte hinzu, die Antwort als Kommentar zuerst , soll ich es ändern, zu beantworten?/
sorry, alle antworteten etwa zur gleichen Zeit, also ging ich mit dem einen, Gaben die meisten (detail darüber nachzudenken, was wäre sehr nützlich, um Menschen, die suchen können, bis die Frage in der Zukunft). Vielen Dank für Ihre Hilfe aber nicht angenommen, Sie hätte eine Idee zum zweiten problem?

InformationsquelleAutor Chris Armstrong | 2010-12-06

Schreibe einen Kommentar