Ciao a tutti,
sto sviluppando il mio primo progetto con Yii, e sono quasi al completamento (spero di potervi far avere presto il link, così mi dite che ne pensate), ma oggi ho un piccolo problema che non riesco a risolvere:
nella pagina di registrazione dell'utente ho abilitato sia la validazione lato client che ajax, funziona tutto ma non riesco ad evitare il doppio click sul pulsante submit.
Inizialmente avevo pensato di disattivalo onlick, ma se poi c'è un errore di validazione, il pulsante dovrebbe essere riattivato.
C'è forse qualcosa messa a disposizione dal framework per gestire queste situazioni? O devo diventare matto con jquery e ajax? :-/
Grazie a tutti
Simone
Page 1 of 1
Submit multiplo con validazione in ajax e lato client
#2
Posted 15 June 2011 - 09:53 AM
Matto no, all'onclick io disabiliterei il bottone, che riabiliterei qualche secondo dopo che la pagina di autenticazione ha fatto il suo dovere. Oppure, ... disabiliti la chiamata ajax per qualche secondo (per la stessa ragione). Così anche se uno clicca come un forsettato su quel bottone NON fa mille chiamate ajax.
#3
Posted 16 June 2011 - 01:27 AM
gerasimone, on 15 June 2011 - 08:57 AM, said:
Ciao a tutti,
sto sviluppando il mio primo progetto con Yii, e sono quasi al completamento (spero di potervi far avere presto il link, così mi dite che ne pensate), ma oggi ho un piccolo problema che non riesco a risolvere:
nella pagina di registrazione dell'utente ho abilitato sia la validazione lato client che ajax, funziona tutto ma non riesco ad evitare il doppio click sul pulsante submit.
Inizialmente avevo pensato di disattivalo onlick, ma se poi c'è un errore di validazione, il pulsante dovrebbe essere riattivato.
C'è forse qualcosa messa a disposizione dal framework per gestire queste situazioni? O devo diventare matto con jquery e ajax? :-/
Grazie a tutti
Simone
sto sviluppando il mio primo progetto con Yii, e sono quasi al completamento (spero di potervi far avere presto il link, così mi dite che ne pensate), ma oggi ho un piccolo problema che non riesco a risolvere:
nella pagina di registrazione dell'utente ho abilitato sia la validazione lato client che ajax, funziona tutto ma non riesco ad evitare il doppio click sul pulsante submit.
Inizialmente avevo pensato di disattivalo onlick, ma se poi c'è un errore di validazione, il pulsante dovrebbe essere riattivato.
C'è forse qualcosa messa a disposizione dal framework per gestire queste situazioni? O devo diventare matto con jquery e ajax? :-/
Grazie a tutti
Simone
aggiugni alla chiamata ajax i seguenti eventi:
beforeSend: function(){
$('#idbutton').attr('disabled','disabled');
},
complete: function(){
$('#idbutton').removeAttr('disabled');
}
#4
Posted 16 June 2011 - 08:28 AM
la soluzione di markux mi sembra valida, questa sera quando sarò a casa proverò.
Grazie mille ad entrambi :-)
Simone
Grazie mille ad entrambi :-)
Simone
#5
Posted 16 June 2011 - 03:57 PM
non ho avuto molto succeesso, questo è quello che ho prodotto:
chiaramente fsubmit è l'id del bottone che dovrebbe essere cliccato una sola volta.
ma non funziona come dovrebbe...
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'register-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
'beforeValidate'=>'js:function(form){$("#fsubmit").attr("disabled","disabled");return true;}',
'afterValidate'=>'js:function(form, data, hasError){
if(hasError){
$("#fsubmit").removeAttr("disabled");
return false;
}
return true;
}',
),
)); ?>
chiaramente fsubmit è l'id del bottone che dovrebbe essere cliccato una sola volta.
ma non funziona come dovrebbe...
#6
Posted 17 June 2011 - 02:00 AM
gerasimone, on 16 June 2011 - 03:57 PM, said:
non ho avuto molto succeesso, questo è quello che ho prodotto:
chiaramente fsubmit è l'id del bottone che dovrebbe essere cliccato una sola volta.
ma non funziona come dovrebbe...
chiaramente fsubmit è l'id del bottone che dovrebbe essere cliccato una sola volta.
ma non funziona come dovrebbe...
quelle non sono chiamate ajax.
puoi anche provare a mettere nella in fondo alla pagina questo codice javascript:
$('#fsubmit').ajaxStart(function() {$(this).attr("disabled","disabled");}).ajaxStop(function() {$(this)..removeAttr("disabled");});
#7
Posted 30 June 2011 - 11:39 AM
funziona, grazie mille ;-)
ignoravo l'esistenza di ajaxStart e ajaxStop!
ignoravo l'esistenza di ajaxStart e ajaxStop!
Share this topic:
Page 1 of 1

Help













