2012-03-26 17 views
1

Ich verwende die WordPress theme Studio8 und ich habe einige benutzerdefinierte Formulare in Seiten durch benutzerdefinierte URL Rewrites geladen.jQuery, AJAX, Formular geladen?

Das Problem ist, während der HTML gültig ist und ohne Fehler, wenn die Seiten geladen werden, durch die jQuery $.load('URL Selelcor') die

<input type="submit" id="submit" value="Submit" /> 

außerhalb der Form bewegt.

sieht Meine Form wie folgt aus:

<form attributes....> 
    .... 
    <input attributes .... /> 
    .... 
    <input type="submit" id="submit" value="Submit" /> 
</form> 

und das HTML-Ergebnis wie folgt aus:

<form attributes....> 
    .... 
    <input attributes .... /> 
    .... 
</form> 

<input type="submit" id="submit" value="Submit" /> 

Jede Idee, wie man dieses Problem zu lösen?


Eine andere Art, wie ich diese Frage zu lösen denke, ist, wenn die Form zu überprüfen geladen wird, und dann, wenn die Form nicht der Fall ist Schaltfläche containa einreichen mit JavaScript hinzufügen auf.

Das Problem ist jetzt, dass ich überprüfen muss, ob das Formular existiert, nach dem AJAX laden. Im Beispiel für die anderen Ereignisse auf Formularelemente verwende ich die

$('element_selector).live('event_name', function(){}); 

In meinem Fall wie kann ich überprüfen, ob das Formular einen Button nach dem AJAX Last einreichen hat?

+0

Sie müssen etwas mehr Details hier - wie Ihre tatsächliche jQuery !!! Wenn das Formular bereits auf der Seite ist - warum laden Sie es wieder? – ManseUK

+0

Veröffentlichen Sie den gesamten relevanten HTML-Code, sowohl den AJAX-geladenen Teil als auch die Seite, die geladen wird. –

+0

Das WordPress Theme basiert auf AJAX. Dieses Thema ist nicht von mir gemacht, und daher weiß ich nicht, warum es auf AJAX basiert :). Die allgemeine Idee ist, eine Themenseite mit Kopf- und Fußzeile zu kisten, und dann lädt der AJAX die entsprechenden Seiten mit AJAX. Das Problem ist, dass die AJAX das Problem zu meiner Form machen :( –

Antwort

1

Seltsam, hier ist eine Idee, aber:

$(document).ready(function() 
{ 
     $('input[type="submit"]').live("click",function() 
     { 
      $('form').submit(); 
     }); 
}); 

Dies sollte die vorhandene Schaltfläche senden Sie Ihr Formular ausfüllen. Sie können die ID hinzufügen, um zu verhindern, dass alle Formulare auf der Seite gesendet werden.

Um zu überprüfen, ob es da ist und es hinzufügen, wenn Sie Sie verwenden können wollen:

$(document).ready(function() 
{ 
     if(!$("form").find(':submit').attr("value")) 
     { 
      $("form").append("<input type=\"submit\" value=\"Submit!\" />"); 
     } 
    }); 

Siehe this jsFiddle.