Mám stránku vygenerovanú v rámci ajax.
Na tejto stránke sú 2 formuláre, # form1 a # form2.
Mám jQuery, kód na odoslanie formulára je nasledovný:
jQuery("#form1").on("submit", function(e){
e.preventDefault();
var sendurl = "/xxx/xxx/xxx/xxx.php";
var varable1 = jQuery("#infor1").val();
var varable2 = jQuery("#infor2").val();
var varable3 = jQuery("#infor3").val();
var varable4 = jQuery("#infor4").val();
var varable5 = jQuery("#infor5").val();
var varable6 = jQuery("#infor6").val();
var varable7 = jQuery("#infor7").val();
jQuery.ajax({url: sendurl + "?varable1=varable1" + "varable2=" + varable2 + "varable3=" + varable3 + "varable4=" + varable4 + "varable5=" + varable5 + "varable6=" + varable6 + "varable7=" + varable7}).done(function(data) {
if(data === "fail"){
jQuery(".error").html("Something went wrong with your form request please try again!").slideDown(500).delay(4000).slideUp(500);
jQuery("input[type=submit]", jQuery("#submittions")).removeAttr("disabled");
return false;
}
if(data !== "fail"){
jQuery("#showresults").slideUp(600);
jQuery(".show-complete-detail").html(data);
jQuery("#applicationcomplete").delay(1500).slideDown(400);
}
});
});
Tiež som vyskúšal:
jQuery().submit();
To tiež nefunguje.
Predpokladám, že pretože stránka je načítaná pomocou Ajaxu, nemôže nájsť formulár s ID formulára1?
Má niekto nejaké nápady, kam idem zle.
Vďaka :)
odpovede:
1 pre odpoveď č. 1Pre dynamicky načítaný obsah použite delegovanie udalostí takto:
// replacing document with top level parent
// something like parent container
jQuery(document).on("submit","#form1", function(e){ ... }
A ešte jedna vec, údaje odovzdané z adresy ajax url sú zlým nápadom, na odosielanie údajov by ste mali použiť vlastnosti údajov, pozri príklad nižšie:
$.ajax({
type : "POST", // or GET
url : "your url here",
data : {
var1 : variable1
.......
},
.... Another properties...
}).done(data){...});
0 pre odpoveď č. 2
Delegujte udalosť na prvok DOM vyššej úrovne, ktorý nebol pridaný dynamicky.
tj)
$("#FormContainer").on("#form1", "submit",function(){
// Do Form tuff....
});
$("#FormContainer").on("#form", "submit",function(){
// Do Form tuff....
});
0 pre odpoveď č. 3
zviazať s dokumentom
jQuery(document).on("submit","#form1", function(e){
});
použite console.log na sendurl
console.log(sendurl)