Double clic pose probleme

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Double clic pose probleme

Re: Double clic pose probleme

par lecer144 » 02 févr. 2014, 23:29

pas top mais avec

document.getElementById('submit_button').style.visibility = 'hidden';

j'arrive à faire disparaître le bouton ...

je vais continuer à essayer ... en grisé, ça serait quand même mieux

Re: Double clic pose probleme

par lecer144 » 02 févr. 2014, 22:27

Merci beaucoup pour ton aide ... ça avance dur même si ce n'est pas encore ça
la boutique est configurée tel que PSHOP_AGREE_TO_TOS_ONORDER doit être égal à 1 (conditions générales de vente doivent être validée)
j'ai donc placé le document.getElementById('submit_button').disabled = true; dans le else avant le return >> le bouton se grise bien mais la page reste figée et la redirection vers le paiement ne se fait plus.
if(  PSHOP_AGREE_TO_TOS_ONORDER == '1' ) {
	vmCommonHTML::scriptTag('', "function submit_order( form ) {
    if (!form.agreed.checked) {
        alert( \"". $VM_LANG->_('PHPSHOP_AGREE_TO_TOS',false) ."\" );
		return false;
    }
    else {
		document.getElementById('submit_button').disabled = true;
		return true;
    }
}" );
} else {
	vmCommonHTML::scriptTag('', "function submit_order( form ) { return true;  }" );
}
et si je le met après le return, la redirection se fait bien mais on peut à nouveau cliquer dessus autant de fois qu'on veut

Re: Double clic pose probleme

par xTG » 02 févr. 2014, 21:32

<input type="submit" id="submit_button" onclick="return( submit_order( this.form ) )" class="button" name="formSubmit" value="<?php echo $VM_LANG->_('PHPSHOP_ORDER_CONFIRM_MNU') ?>" />
<?php
if(  PSHOP_AGREE_TO_TOS_ONORDER == '1' ) {
        echo vmCommonHTML::scriptTag('', "function submit_order( form ) {
    if (!form.agreed.checked) {
        alert( \"". $VM_LANG->_('PHPSHOP_AGREE_TO_TOS',false) ."\" );
        document.getElementById('submit_button').disabled = true;
        return false;
    }
    else {
        return true;
    }
}" );
} else {
        echo vmCommonHTML::scriptTag('', "function submit_order( form ) { return true;  }" );
}

Re: Double clic pose probleme

par lecer144 » 02 févr. 2014, 21:10

j'ai tenté une autre piste

<input type="submit" onclick="return( submit_order( this.form ) );" onmouseup="javascript:document.getElementById('formSubmit').disabled=true" class="button" name="formSubmit" value="<?php echo $VM_LANG->_('PHPSHOP_ORDER_CONFIRM_MNU') ?>" />

à la place de

<input type="submit" onclick="return( submit_order( this.form ) );" class="button" name="formSubmit" value="<?php echo $VM_LANG->_('PHPSHOP_ORDER_CONFIRM_MNU') ?>" />

mais ça ne donne rien :(

Double clic pose probleme

par lecer144 » 02 févr. 2014, 17:52

Bonjour j'ai ce code à la validation d'une page de commande virtuemart

<input type="submit" onclick="return( submit_order( this.form ) );" class="button" name="formSubmit" value="<?php echo $VM_LANG->_('PHPSHOP_ORDER_CONFIRM_MNU') ?>" />

dans
<div align="center">
<input type="submit" onclick="return( submit_order( this.form ) );" class="button" name="formSubmit" value="<?php echo $VM_LANG->_('PHPSHOP_ORDER_CONFIRM_MNU') ?>" />
</div>
<?php
if(  PSHOP_AGREE_TO_TOS_ONORDER == '1' ) {
	echo vmCommonHTML::scriptTag('', "function submit_order( form ) {
    if (!form.agreed.checked) {
        alert( \"". $VM_LANG->_('PHPSHOP_AGREE_TO_TOS',false) ."\" );
        return false;
    }
    else {
        return true;
    }
}" );
} else {
	echo vmCommonHTML::scriptTag('', "function submit_order( form ) { return true;  }" );
}

mais il pose problème car lorsque le client double clic, cela génère 2 commandes (et 3 pour 3 clics ... etc ..)

En fouinant, il semble que certains aient réglé le problème en bloquant le multiple clic par

jQuery(document).ready(function($) {
$('a#btnCheckoutSubmit').bind('click', function(e){
$('#checkoutForm').submit();
$(this).unbind(e);
});
});

mais oulala comment insérer ça ?

Y'a des fois j'arrive plus ou moins à comprendre ce qu'il faut que je fasse en php mais alors là jquery ... au secours ... help please ...
Par avance merci pour les pistes que vous voudrez bien me donner