Tengo un formulario que intento enviar después de que la página se cargue y pasaron 5 segundos .. He intentado con setTimeout pero parece que no funciona ... ¿Alguien puede sugerir por qué esto ser el caso, tengo jQuery en el sitio, pero no podía conseguir retardo() que trabajan ya seaEnvío automático del formulario después de 5 segundos
<form action="" name="cartCheckout" id="cartCheckout" method="post">
<input type="hidden" name="action" value="checkout" />
<input type="hidden" name="save" value="1" />
<input type="hidden" name="orderID" value="<?php echo $GLOBALS['CHECKOUT_ORDERID']; ?>" />
<div class="itembox" id="step4box">
<div id="progress">
<ul>
<li>Your Cart</li>
<li>Your Details</li>
<li class="current">Payment</li>
<li>Confirmation</li>
</ul>
</div>
<div id="words" class="gothbold">Please wait while we we redirect you to<br />Paypal for a secure payment method.</div>
<a class="redirect" href="javascript:void(0)" title="Proceed to Paypal" onClick="document.cartCheckout.submit();"><span>If you aren't redirected in 5 seconds click here</span></a><br />
<a class="cancel" href="javascript:void(0)" title="Return to details" onClick="jQuery('#step4box').hide();jQuery('#step2box').show();"><span>Cancel</span></a>
</div>
<script type="text/javascript">
window.onload=function(){
window.setTimeout(document.cartCheckout.submit(), 5000);
};
</script>
</form>
cualquier ayuda sería muy apreciada, gracias de antemano
EDIT:
cambiaron a este a través de una combinación de @Alex, @ user824294 y esta pregunta: How Can I create A 5 second Countdown timer with jquery that ends with a login popup?. Ahora funciona de maravilla y con una gran funcionalidad de cuenta atrás. ¡Gracias chicos!
window.onload=function(){
var counter = 5;
var interval = setInterval(function() {
counter--;
$("#seconds").text(counter);
if (counter == 0) {
redirect();
clearInterval(interval);
}
}, 1000);
};
function redirect() {
document.checkout_paypal.submit();
}
Esto no funciona! La función de envío de envío se llama con el 'this' incorrecto. http://jsfiddle.net/C8FcX/ Resultados de Chrome: 'Invocación ilegal'. Necesita envolverlo con una función '() {...}' para asegurarse de que se envíe con el contexto correcto, o puede usar 'Function.bind' –
@JuanMendes: Pensé que ese podría haber sido el caso. – alex