Frage

Ich habe ein AJAX -Formular, das ich verhindern möchte, eine Aktion vorzubauen, wenn ich eingereicht habe, und habe zahlreiche Methoden ausprobiert und nichts funktioniert. Meine erste Methode war:

 return false;

Und dann habe ich es versucht

event.preventDefault();

Ereignis ist der Rückrufname oder wie auch immer Sie ihn nennen.

function(event) {
    event.preventDefault();
};

Hier ist die HTML, die ich gerade benutze:

<form class="main_search" method="POST" action="ajaxsearch.php">
    <input type="text" class="editable" placeholder="Search">
</form>

Hier ist der Test JavaScript, den ich eingerichtet habe:

$('.main_search').submit(function(event) {
    event.preventDefault(console.log(event)); //Log the event if captured
});

Keine Methode funktioniert, aber der seltsame Teil ist, dass sie an verschiedenen Dingen wie Schaltflächen arbeiten, aber nicht an dieser einen Formular funktioniert. Vermisse ich hier etwas? Vielen Dank!

War es hilfreich?

Lösung

Um mit Ihrem spezifischen Problem umzugehen (dh,, dynamisch erzeugte Form einfügen), verwenden $.on(). Sie sind besser dran, nicht zu benutzen document.body als Elternbeobachter (als $.live() im Wesentlichen) mit $.on(), Das Folgende wäre also angemessen (berücksichtigt Ihr tatsächliches Markup):

<div id="searches">
    <form class="main_search" method="POST" action="ajaxsearch.php">
        <input type="text" class="editable" placeholder="Search">
    </form>
</div>

var $main_search = $('.main_search'),
    $searches = $('#searches');

$searches.on('submit', '.main_search', function(event) {
    event.preventDefault();
    console.log(event); //Log the event if captured
});

setInterval(function(){
    $searches.append($main_search.clone());
}, 5000);

http://jsfiddle.net/5tvgn/2/

Andere Tipps

Ich habe eine JSFIDDLE eingerichtet:

http://jsfiddle.net/xm679/

Könnte es sein, dass Sie vergessen haben, es zu wickeln $(document).ready(function() {} ? Wenn dies das Problem nicht gelöst hätte: Da die Geige funktioniert, würden wir Ihren Kontext benötigen, um mehr zu helfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top