12
votes

Avec JavaScript et Ajax, ai-je toujours besoin de la balise HTML et avons-je toujours besoin de soumettre des formulaires au serveur à l'aide d'un bouton "Soumettre"?

Retour Lorsque j'ai appris HTML, CGI était roi, et la bonne façon d'interagir avec le serveur était de mettre les balises à l'intérieur d'un tag . Lorsque l'utilisateur a appuyé sur le bouton "Soumettre", un message http get ou un message HTTP a été envoyé sur le serveur et le navigateur actualisé à l'aide du code HTML renvoyé dans le programme CGI sur le serveur.

Maintenant, j'ai commencé à faire des choses Web à nouveau et j'apprends JavaScript et JQuery. Puisque JQuery peut intercepter des événements tels que Cliquez sur , KeyPress et COODOUT et pouvez lire des données avec $. Ajax () et $. getjson () , est-il nécessaire d'avoir un tag du tout?

Peut-être que des «formes réelles» sont encore nécessaires si je souhaite prendre en charge les utilisateurs qui ont désactivé JavaScript?


2 commentaires

Vous devez envisager JavaScript comme «extras» dans la couche de présentation, et non un remplacement des normes HTML. Oui, vous pouvez utiliser des comportements JavaScript à la place des comportements DOM. Mais, comme il est possible de conduire 90 mph dans une zone de 45 mph, vous ne devriez vraiment pas. Voir l'article Wiki sur JavaScript discret pour plus d'informations: en.wikipedia.org/wiki/unobtrive_javascript


Si je peux résumer les réponses jusqu'à présent, cela ressemble à la balise n'est nécessaire que lors de la sérialisation des éléments sous une forme. Mais penser plus profondément, cela ressemble à une différence entre les sites Web de «page unique» tels que Gmail et Google Maps, ainsi que des sites Web de MultiPage comme Amazon.com. Je peux voir la valeur de l'utilisation de formulaires pour les sites Web de plusieurs pages, mais des sites Web "à une seule page" peuvent être mieux avec pure JavaScript et sans formulaires, bien que cela ne ferait probablement pas de mal à avoir des formes tant que la soumission est faite de manière asynchrone avec JavaScript .


3 Réponses :


1
votes

Si vous utilisez AJAX, tant que vous n'avez pas de messages directs ou que vous obtenez, une balise de formulaire n'est pas requise. Cependant, il est toujours bon design HTML.


0 commentaires

6
votes

Les formulaires peuvent toujours vous aider, mais la réponse courte est non, pas vraiment.

Si vous avez un groupe d'intrants qui vont se rapporter à une certaine demande Ajax, il pourrait être plus facile de les garder dans leur propre forme à des fins de validation / sérialisation. Par exemple: P>

$.ajax({
    url: 'ajax/test.html',
    dataType: 'json',
    method: 'POST',
    content: $('form#login_form').serialize(), // <-- Serialize elements only in
    success: function(data) {                  //     the login_form container.
        $('.result').html(data);
    }
});


0 commentaires

1
votes

Vous pouvez faire les deux, soumettre ou non. Cela peut dépendre de l'élément de formulaire que vous souhaitez écouter pour les modifications. Mais vous pouvez faire quelque chose comme celui-ci comme un exemple: xxx

mais à nouveau, cela dépend de l'élément de la page que vous souhaitez manipuler.


0 commentaires