2009-09-23 5 views
0

Voici ma simple fonctionsimple fonction Jquery échoue dans Safari, Chrome et IE

$('#save_button').click(function() { 
     $(this).attr('disabled',true).val('Saving'); 

     $('#new_record_form').ajaxForm({ 
     url: '/', 
     type: "POST", 
     dataType: "json", 
     beforeSubmit: function(){ alert('Boo!'); }, 
     success: function(){ alert('Hello!'); } 
     }); 
}); 

Cela fonctionne bien dans Firefox, mais pas dans Internet Explorer, Chrome ou Safari.

Commenter cette ligne $(this).attr('disabled',true).val('Saving'); semble faire fonctionner les choses.

Une raison pour cela?

Répondre

1

Lorsqu'un html input est 'désactivé', il n'est pas supposé pouvoir envoyer une entrée. Essayez plutôt de remplacer la propriété par 'readonly'.

0

Il semble que vous ne pouvez pas modifier un contrôle désactivé ...

mais peut-être faire cela devrait résoudre le problème:

$('#save_button').click(function() { 
     $(this).val('Saving'); 
     $(this).attr('disabled',true); 

     $('#new_record_form').ajaxForm({ 
     url: '/', 
     type: "POST", 
     dataType: "json", 
     beforeSubmit: function(){ alert('Boo!'); }, 
     success: function(){ alert('Hello!'); } 
     }); 
}); 
+0

Merci, mais ne résout pas le problème de ne pas travailler dans d'autres navigateurs ... – schone

1

Je l'habitude d'écrire $(accessor).attr("disabled", "disabled"); qui se traduit par HTML qui ressemble à <... disabled="disabled" .../> en cours de production . Je ne savais pas que vous pouviez utiliser votre syntaxe. Pouvez-vous essayer cela, et voir si cela fonctionne? Pour supprimer l'attribut, j'utilise $(accessor).removeAttr("disabled");.

+1

'true' est la valeur la plus appropriée. La propriété 'attr()' de jQuery modifie les propriétés JavaScript/DOM, pas les attributs HTML (bien que jQuery essaie de masquer les différences). 'disabled' est une propriété booléenne. Le réglage à '" disabled "' fonctionne aussi parce que les chaînes non-vides coercent à 'true' dans un contexte booléen. – bobince

Questions connexes