J'ai récemment été informé que mon application de panier d'achat ne fonctionne pas lorsqu'elle est affichée dans Mobile Safari (iPhone, iPod Touch). Les formulaires d'ajout au panier utilisent l'approche de l'"amélioration progressive" pour prendre en charge les mises à jour AJAX à l'aide de jQuery. Quelques tests rapides ont montré que la fonctionnalité fonctionne effectivement avec JavaScript désactivé. Tout ce que j'ai lu jusqu'à présent indique que l'iPhone ne prend pas en charge l'événement "form.onsubmit", auquel je me lie actuellement avec jQuery pour lancer la transaction AJAX.
Puis-je apporter des modifications pour ajouter le support iPhone sans faire de la détection de navigateur, ou servir des scripts alternatifs ?
Le modèle de formulaire actuel :
<form method="post" action="" class="my-cart">
<fieldset>
...
<input type="submit" name="my-button" value="add to cart" />
</fieldset>
</form>
Et l'événement script :
$('form.my-cart').submit(function(){
...
});
J'ai eu beaucoup de succès avec cela en termes de support des navigateurs (la plupart des navigateurs supportent AJAX/JavaScript, mais tous les autres - à l'exception de l'iPhone - reviennent à la soumission de formulaire ordinaire, etc. etc.) J'aimerais supporter la fonction AJAX dans l'iPhone, mais je me contenterai de contourner le JavaScript. En l'état, l'iPhone fait simplement rien en cliquant sur le bouton d'envoi.