2010-09-15 3 views
0

J'utilise le plugin de formulaire Jquery pour envoyer mon formulaire via ajax. Le côté serveur script php traite les données de formulaire et retourne une chaîne JSON dans le format suivant:Jquery formulaire submit et le type de données JSON return

{"error":true,"message":"The username or email already exists. Please try again."} 

est ici le ajax envoyer le formulaire:

$('#register_form').ajaxForm({ 
      dataType: 'json', 
      contentType: "application/json; charset=utf-8", 
      success: showResponse 

     }); 
}); 

Puis sur ma page html, je avoir le script suivant:

<script> 
function showResponse(data){ 

if (data.error == true){ 
    //display the top error div 
    if ($("#registration_error").is(":hidden")) { 
     $("#registration_error").html(data.message); 
     $("#registration_error").slideDown("slow"); 
    } 

} 
else{ 
    alert('registration complete'); 

} 


} 
</script> 

L'erreur est affichée au-dessus du formulaire d'inscription dans ma page HTML. Ce fonctionne en chrome et firefox. Cependant, IE efface le formulaire et affichant une nouvelle page avec juste la réponse JSON comme suit:

{"error": true, "message": "Le nom d'utilisateur ou le courriel existe déjà. Veuillez réessayer." }

Je n'arrive pas à comprendre pourquoi IE a des problèmes avec ça. S'il vous plaît aider.

+1

Souhaitez-vous essayer de renvoyer false sur l'événement de clic sur le bouton Soumettre après le déclenchement de l'ajaxForm? –

+0

Je l'ai essayé, et le même problème existe toujours. Je ne sais vraiment pas ce qui se passe avec IE. Merci pour votre réponse si! –

Répondre

1

Essayez d'arrêter le formulaire de soumettre avant vous indiquant le ajaxForm

$('#register_form').submit(function(ev){ ev.preventDefault(); }); 

On dirait que le jquery n'a pas été en mesure d'empêcher avec succès la forme d'être soumis sur IE. Quel IE avez-vous utilisé de toute façon?

+0

J'utilise IE 8, merci, je vais essayer et voir ce qui se passe. –

Questions connexes