J'ai un formulaire que j'utilise via XHR, donc il n'est pas prêt quand le DOM est rendu initialement. Actuellement, j'utilise quelque chose comme:jQuery: Comment chaîner .live() avec .ajaxForm()?
jQuery("[name='myform']").ajaxForm({ /* code here */ });
et il fonctionne très bien sur une application autonome. L'application dans laquelle je l'intègre est énorme, et je dois pouvoir lier ajaxForm à myform avant que myform soit disponible pour le DOM. Y at-il de toute façon je peux combiner .live() ici afin d'avoir jQuery regarder quand il est introduit via XHR?
** EDIT **
est ici le code réel qui est en cours d'exécution. pas d'erreurs javascript. Il ne fait que soumettre une page complète au lieu d'une mise à jour XHR.
jQuery("[name='clip_form2']").live('submit', function(e) {
$(this).ajaxSubmit({
target: '#form_quotes_highlights_part',
beforeSerialize: function(form, options) {
alert("In beforeSerialize...");
if (validate_time_text_highlights()) {
if ($tabChanged) {
diff(form[0]);
jQuery('form[name=clip_form2] input[type=submit]').attr('disabled', 'disabled').val("<%= t('labels.please_wait') %>");
return true;
}
else {
return false;
}
}
return false;
},
success: function() {
jQuery('#form_quotes_highlights_part').fadeIn('slow');
},
complete: function() {
jQuery("#wizard").expose().close();
}
});
$tabChanged = false;
add_change_listener("form[name=clip_form2]");
Tabs.validateCancel($("button[name=Cancel]", "form[name=clip_form2]"));
$("#clip_quote").NobleCount('#quote_count');
$("#clip_quote2").NobleCount('#quote2_count');
$("#clip_attribution").NobleCount('#attribution_count');
if (<%= is_defined?(@permitted_clip_read_only) && @permitted_clip_read_only %>) {
jQuery('form[name=clip_form2] input').attr("disabled", true);
jQuery('form[name=clip_form2] textarea').attr("disabled", true);
}
e.preventDefault();
});
Une raison pour ajaxSubmit() au lieu de ajaxForm()? – randombits
@randombits - J'ai essayé d'élaborer sur ceci ci-dessus, vous pouvez voir ici que 'ajaxForm()' est très littke: http://github.com/malsup/form/blob/master/jquery.form.js#L444 c'est juste un mécanisme de liaison qui appelle 'ajaxSubmit()' en dessous. –
Ne pourriez-vous pas utiliser .delegate à la place()? Peut obtenir des avantages de performance. – RyanP13