Potvrdzovacie okno, pred odoslanim formulara
- Juraj_
- Člen | 22
Zdravim,
chcem aby po vyplneni formulara a kliknuti na tlacitko odoslat sa najprv vyhodila hlaska kde mozem potvrdit, alebo odmietnut poslanie. Az po naslednej akceptacii sa data odoslu a spracuju, neviem vsak presne ako nato. Zacal som:
latte:
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
{block #content}
{control sendMessageForm}
<button id="opener">Pošli</button>
<div id="dialog" title="Odoslanie notifikácie">Naozaj chcete odoslať správu?</div>
<script>
$( "#dialog" ).dialog({ autoOpen: false });
$( "#dialog" ).dialog({
resizable: false,
height:140,
modal: true,
buttons: {
"Áno": function() {
$( this ).dialog( "open" );
},
Nie: function() {
$( this ).dialog( "close" );
}
}
});
$( "#opener" ).click(function() {
$( "#dialog" ).dialog( "open" );
});
</script>
{/block}
form:
protected function configure(\Nette\Application\IPresenter $presenter)
{
$this->addSelect('type', '', array(1, 2 , 3 , 4 ))
->setRequired();
$this->addText('title', 'Nadpis');
$this->addTextArea('message','Napíš správu');
}
presenter:
public function createComponentSendMessageForm()
{
$form = new SendMessageForm();
// $form->onSuccess[] = callback($this, 'sendMessage');
return $form;
}
Neviete mi poradit, co stym?
Dakujem
- Michal Hlávka
- Člen | 190
$form->getElementPrototype()->onSubmit = 'return Nette.validateForm(this) ? confirm(\'Opravdu odeslat?\') : false';
- Juraj_
- Člen | 22
Dalo by sa nejak urobit, vlastny confirm?
Skusal som:
function getConfirmation(){
var retval = false;
$(function() {
$( "#dialog-confirm" ).dialog({
resizable: false,
height:140,
modal: true,
buttons: {
Yes: function() {
$( this ).dialog( "close" );
retval = true;
},
No: function() {
$( this ).dialog( "close" );
retval = false;
}
}
});return retval;
});
return retval;
}
</script>
<div id="dialog-confirm" title="Basic dialog">
<p>Naozaj chcete poslat spravu?</p>
</div>
vytvaram komponent:
$form = new SendMessageForm();
$form->getElementPrototype()->onSubmit = 'return Nette.validateForm(this) ? getConfirmation() : false';
$form->onSuccess[] = callback($this, 'sendMessage');
return $form;
Problem je v tom ze ked po zvalidovani formu mi vyskoci dialog, data sa
zacnu odosielat a teda tato funkcia je bezvyznamna…
Neviete mi poradit ako sa da vytvorit vlastny stylovany confirm?
- Juraj_
- Člen | 22
Toto mi nefunguje, skusal som aj confirm dialog
ale nefunguje…
Proste potrebujem co najlahsie spravit vlastny confirm, ktory si budem moct
nastylovat…
- Michal Hlávka
- Člen | 190
Musíš zobrazit confirm dialog a stále formuláři předat false. Až teprve v dialogu při kliknutí na button odeslat formulář. Takže funkce getConfirmation() nazáčátku bude vracet false, vykreslí tvůj vlastní confirm dialog s dvouma buttonama a jeden bude odesílat formulář pomocí metody .submit(), kterou jsem tam někde v tvém kódu zahlédnul. :-)