Page 1 sur 1

Double clic pose probleme

Posté : 02 févr. 2014, 17:52
par lecer144
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

Re: Double clic pose probleme

Posté : 02 févr. 2014, 21:10
par lecer144
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 :(

Re: Double clic pose probleme

Posté : 02 févr. 2014, 21:32
par xTG
<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

Posté : 02 févr. 2014, 22:27
par lecer144
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

Posté : 02 févr. 2014, 23:29
par lecer144
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