Salve a tutti,
vorrei sapere se dopo l’invio di una form con ajaxSubmitButton, è possibile ottenere tutti i campi bianchi, io ad esempio per rendere bianco un campo ho messo questo nel success
$("#nome").val("");
ma sicuramente è provvisorio.
Inoltre vorrei sapere se è possibile far venire errorSummary anche utilizzando questo tasto, che è un po’ di tempo che ci provo, ma non riesco
grazie a tutti
con l’aiuto del forum sono arrivato a queste due conclusioni, sicuramente non le migliori, ma per adesso per me sufficienti.
Problema errore con ajaxSubmitButton, non riuscivo a far visualizzare l’errori della form se utilizzavo il pulsante ajax
ecco come ho risolto:
Controller:
public function actionCreate() {
$model = new Pagine;
$errors = CActiveForm::validate($model);
if ($errors !== '[]') {
echo CJSON::encode(array(
'result' => 'error',
'msg' => CHtml::errorSummary($model),
));
Yii::app()->end();
}
$model->attributes = $_POST['Pagine'];
$model->save();
if (Yii::app()->request->isAjaxRequest) {
echo CJSON::encode(array(
'msg' => 'Salvataggio Effettuato',
));
}
}
View:
echo CHtml::ajaxSubmitButton(
'Salva Pagina', $this->createUrl("Pagine/Create"), array(
'type'=>'POST',
"dataType" => "json",
'beforeSend' => 'function(data){
$("#risposta").show();
$("#risposta").html("sending...");
}',
'success' => 'function(data){
if(data.result==="error"){
$("#risposta").html(data.msg);
$("#risposta p").css("color","#f00");
}else{
$("#risposta").html(data.msg);
$("#risposta").fadeOut("slow");
$("#container").append(data.div);
}
}',
'error' => "function(data) {
$('#risposta').html('<p>Errore Inaspettato</p>');
$('#risposta p').css('color','#f00');
}",
)
);
Sfruttando il Json e le risposta che mi tornano indietro, riesco a far visualizzare l’errore nel div #risposta.
per "blankare" i campi di testo (funziona per gli input) nel Js ho scritto questo:
$("form :input").val("")
;
sicuramente poco duttile, e infatti ben venga qualche suggerimento