0
votes

Bouton Désactiver après d'abord cliquez sur AJAX.BeGinform avec JavaScript

Avoir un problème de cache / désactivation du bouton Soumettre avec elle soumettant également le formulaire. J'ai essayé d'ajouter: onclick = "this.value =" soumettre, veuillez patienter. '; This.disabled =' désactivé ";" code> dans le champ Soumettre d'entrée qui désactive le bouton, mais ne soumettra pas le bouton forme. J'ai essayé de placer cela dans la partie JavaScript aussi et cela ne fonctionne pas. J'ai essayé des choses comme ça aussi:

<script type="text/javascript">

$("#SignInButton").one('click', function (event) {
    $(this).prop('disabled', 'disabled');
});


//function OnSuccess(data) {
//  alert(data);
//  $('#LoginModal').parent.html(data).css("display", "block");
//  $("#LoginModal").css("display", "block");
//}

var ready;
ready = function () {
    $(".fancybox").fancybox({
        'content': $('#LoginModal'),
        'onStart': function () { $("#LoginModal").css("display", "block"); },
        'onClosed': function () { $("#LoginModal").css("display", "none"); }
    });
};
$(document).ready(ready);
$(document).on('page:load', ready);

</script>


0 commentaires

4 Réponses :


0
votes

Vous pouvez désactiver le bouton dans l'excision de la boucle d'événement suivante à l'aide de Settimeout (FUNC, 0) CODE>:

$("#SignInButton").one('click', function (event) { 
  setTimeout(function() { 
    event.preventDefault(); 
    $(this).prop('disabled', true); 
  }, 0); 
});


5 commentaires

Hey @beniamin h, le Settimeout ne fonctionne pas pour moi. J'ai déjà essayé cela auparavant. Il suffit de siéger et rien ne se passe après avoir cliqué sur le bouton.


Ça étrange car il devrait fonctionner - Veuillez jeter un oeil sur cet exemple: Codepen.io/anon / stylo / vqderq? éditeurs = 1111


Oui, je sais que j'ai joué avec tant d'exemples en ligne. J'ai placé le fichier entier ci-dessus si vous voulez regarder tout le monde. Je ne suis pas sûr de quoi essayer d'autre.


Vous devriez mettre $ ("# signinbutton"). Un (... Intérieur prêt Fonction. DOM doit être chargé pour trouver Ajouter un auditeur à Signinbutton.


Hey @Beniamin H, placant que dans la fonction prête ne fonctionne toujours pas non plus. J'ai essayé de sortir la partie de la minuterie aussi pour tester, ce qui n'a pas non plus fonctionné. N'a pas suivi à la fonctionnalité de soumission.



0
votes

Vous devez soumettre le formulaire après désactivation du bouton.

donner à votre formulaire un identifiant: xxx

puis le soumettre par JavaScript: < Pré> xxx


7 commentaires

Hey @kurohige, appelant que Formid me donnait des erreurs. La première itération de mon code n'a pas eu ce formid. J'ai essayé de l'ajouter après avoir examiné d'autres exemples. Cela me donnait un "Impossible d'invoquer la méthode d'action: connexion. Contrôleur".


@Imsobesboosted puis désactiver uniquement le bouton (voir la mise à jour)


Ouais j'ai essayé cela aussi. Cela désactive simplement le bouton et siège. Il ne soumet jamais le formulaire. Je n'arrive pas.


@Imsobesboosted Pouvez-vous ajouter le HTML externe que vous avez après le rendu de la page?


Je reçois cette erreur lorsque je vais cet itinéraire: impossible d'invoquer la méthode d'action: connexion. Nom du contrôleur: sitecore. Type de contrôleur: sitecore.mvc.controls.sitecorecontroller


C'est un problème différent


Ouais j'ai abandonné. J'ai décidé de définir un bouton désactivé en haut du bouton après avoir cliqué. Quelque chose agissait étrange. Merci pour toute l'aide.



0
votes

Je pense que vous devez définir l'attribut désactivé sur "désactivé" au lieu de xxx


0 commentaires

0
votes

Vous pouvez probablement essayer d'utiliser les méthodes AjaxStart et Ajaxstop de JQuery.

http://api.jquerery.com/ajaxstart/

http://api.jquerery.com/ajaxstop/

peut être quelque chose comme, dans Ajaxstart désactiver le bouton.


0 commentaires