8
votes

Désactiver le bouton Soumettre lorsque JavaScript est désactivé

J'ai un formulaire qui a besoin de JavaScript pour être activé pour la validation, est-il un moyen de désactiver le bouton Soumettre lorsque JavaScript est désactivé et avertir l'utilisateur pour l'activer en premier?


6 commentaires

La vérification de la santé du côté des données ne peut jamais être une commodité pour l'utilisateur. Il ne peut pas vous fournir de sécurité. Les clients malveillants peuvent soumettre toutes les données qu'ils aiment. Effectuez vos vérifications sur le serveur. Ensuite, vous n'avez pas besoin de vous soucier de l'utilisateur avec JS activé ou non.


Y a-t-il une raison d'affaires pour cela? Just FYI (si vous y êtes nouveau) Toutes les validations effectuées par JavaScript peuvent facilement être contournées - vous devez toujours valider les données de formulaire sur le serveur.


La raison pour cela est que j'ai plusieurs formes qui calculent le prix sur de nombreux éléments, lorsque JavaScript est désactivé la validation du travail (j'utilise JQuery Plugin pour la validation), il ne fonctionnera pas et lorsque l'utilisateur le soumettra, le formulaire enverra des champs vides


La validation du côté client ne se déroule pas ne causera pas de formulaires de ne pas soumettre de données. Vous êtes soit maldescritures, soit maldignez le problème. De toute façon, la solution est «Faites-la fonctionner sans JS» et non «Essayez de forcer les gens à utiliser JS».


c'est quelque chose comme cette page: psd2html.com/order-now.html si vous désactivez JavaScript, les formulaires ne fonctionneront pas!


Ne fonctionne pas sans JavaScript est un bug, pas une fonctionnalité. S'il vous plaît prenez le commentaire de David au cœur. La validation côté client vous offre une sécurité zéro. Je peux entrer un simple JavaScript: URL dans la barre d'adresse pour contourner votre code de validation et soumettre de toute façon. Vous avez besoin de code côté serveur pour effectuer la validation et la recalculition des champs calculés automatiquement tels que les totaux de prix; La validation du côté client n'est jamais utile pour les rapports d'erreurs plus rapides et slicker.


6 Réponses :


2
votes

Ne définissez pas une action de forme HTML, mais ne définissez plutôt qu'un gestionnaire d'événements JavaScript OnSubmit. Si JavaScript n'est pas activé, l'Onsubmit ne tire pas, mais comme il n'y a pas d'action de formulaire, le bouton Soumettre ne fera rien d'autre chose.

Vous pouvez également choisir d'avoir l'action de formulaire HTML accéder à une page d'erreur expliquant que JavaScript doit être activé, de sorte que l'utilisateur a une sorte de retour d'information.

Vous pouvez également commencer par le bouton désactivé (comme d'autres affiches suggérées). Si vous faites cela, vous devez également envisager un message sur le formulaire indiquant pourquoi le bouton est désactivé. Supprimer ce message avec JavaScript s'il est activé en même temps que vous réactivez le bouton.


0 commentaires

0
votes

Étant donné que la désactivation d'un bouton de manière programmatique en fonction de l'environnement et de l'alerter sont les deux tâches en fonction de la sorte de langage de script (comme JavaScript), la réponse est non: - /


3 commentaires

Eh bien, vous pouvez l'avoir désactivé par défaut puis l'activer avec JavaScript


droit! Je ne pensais pas à ça, mais de toute façon, je ne suis pas un grand fan de dépendances JavaScript ...


La question ne peut-elle pas dépendre de JavaScript?



5
votes

Demandez-le désactivé par défaut et s'il y a JavaScript, activez-le.


0 commentaires

26
votes

Désactiver par défaut et utilisez JavaScript pour l'activer.

<script type="text/javascript">
$(function(){
  $('#submitBtn').attr('disabled', false);
});
</script>


2 commentaires

Soyez juste prudent avec la fonction _onload , car si la propriété window.onload a été définie précédemment, votre fonction jamais exécuter. En fait, étant donné que le bloc est défini après l'entrée, vous pouvez supposer que getElementyid le trouvera car lorsque le script est évalué, l'entrée est déjà dans le DOM .. .


@CMS Droite. C'est pourquoi je préfère JQuery.



0
votes

Vous avez une solution pour permettre une pièce active. Pour alerter une partie, vous pouvez utiliser une bonne ancienne tag. (-:

<noscript>
<H1> It Wont work w/o javascript. Please Enable</h1>
</noscript>


0 commentaires

0
votes

Excusez la réponse tardive, mais cela m'a fait penser à la lutte contre cela comme j'ai un problème similaire et cela m'a conduit ici. Vous devez toujours programmer votre site sans JavaScript et l'ajouter après l'améliorer, mais dans mon cas, utiliser des objets comme la sélection de la lumière est utilisé comme entrée, que si JavaScript est désactivé, ne fonctionne pas correctement (surtout que la mine passe à son parent ).

Ma suggestion est que j'espère que vous avez activé PHP, vous pouvez simplement mettre en haut de votre document xxx

à partir de là, vous devrez définir tout Boutons de votre page pour dire xxx

ou vous pouvez plus simplement aller xxx

espère que cela vous aide!


0 commentaires