J'ai une forme et un morceau de code pour créer javascript
AJAX
formes. La chose étrange est quand je soumets mon formulaire dans Internet Explorer la seule chose qui affiche est [object Object]
. Le formulaire fonctionne correctement dans Google Chrome. Voici mon code:Impossible d'annuler l'action par défaut sur le formulaire ajax présenter
tête de formulaire:
<form id="page-details-form" class="ajax-form" name="page-details-form" method="POST" action="/pages/save/1">
auditeur Javascript:
<script>
$(function(){
$(document).on("submit",".ajax-form",function(e){
if (window.event) {
window.event.returnValue = false;
}
e.preventDefault ? e.preventDefault() : e.returnValue = false;
$('.form-message').remove();
if($('#onSubmitJsEval').html() && $('#onSubmitJsEval').html().length > 0)
{
eval($('#onSubmitJsEval').html());
}
var submitBtnValue = $('#submitBtn').html();
var formId = $(this).attr('id');
var postData = $(this).serializeArray();
$('#submitBtn') .html('<img src="images/ajax-loader.gif" />');
$('p.has-error') .remove();
$('div.has-error') .removeClass('has-error');
$.post($(this).attr('action'), postData, function(jsonResponse)
{
var jsonObject = jQuery.parseJSON(jsonResponse);
if(jsonObject.success == true)
{
$('<div class="<?=MESSAGE_SUCCESS_CLASS?>"><?=MESSAGE_SUCCESS_PREFIX?>'+jsonObject.message+'</div>').insertBefore("#" + formId + " h2");
if(jsonObject.insertedId > 0)
{
var stringPath = window.location.pathname.substr(window.location.pathname.length - 1);
document.location.href = window.location.pathname + ((stringPath != "/") ? "/" : "") + jsonObject.insertedId;
}
}
else
{
$('<div class="<?=MESSAGE_ERROR_CLASS?>"><?=MESSAGE_ERROR_PREFIX?>'+jsonObject.message+'</div>').insertBefore("#" + formId + " h2");
$.each(jsonObject.errors, function(index, value){
$('[name='+index+']').parent().addClass('has-error');
$('[name='+index+']').after('<p class="has-error help-block">'+value+'</p>');
})
}
$('#submitBtn').html(submitBtnValue);
});
});
});
</script>
J'ai essayé plusieurs options en plus de l'option actuelle:
if (e.preventDefault) e.preventDefault();
e.returnValue = false
e.returnValue = false
aprèse.preventDefault
Quelqu'un at-il une idée? Si j'ai besoin de publier plus de code s'il vous plaît faites le moi savoir. Je peux poster tout le code si tu veux.
Merci beaucoup!
'e.returnValue = false ;;' doubles points-virgules? et pourquoi ne pas essayer avec 'e.preventDefault();' Pourquoi avez-vous besoin d'une condition if pour cela? – Jai
voir la mise à jour ...... –
Je suis désolé je viens de coller le code erroné. Je le mets à jour avec le code javascript complet. –