Problem s setRequire zavysleho selectboxu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- vosy
- Člen | 532
mam formular se zavyslim selectboxem ULICE ktere je povinne vyplnit.
Kdyz se zvoli MESTO tak pres snippet obnovim formular s pozadovanymi ulicemi,
ale kdyz nasledne zvolim ulici a dam odeslat tak se mi zobrazi hlaska ze
setRequired olicka ulice. Pritom ulice je zvolena.
Formular:
$r = $presenter->MestaRepository->seznamMest();
$seznamMest = $r->fetchPairs('id', 'nazev');
$form->addSelect('mesto', 'Město: ', $seznamMest)
->setPrompt(' -- ')
->setRequired('Zvolte město.');
$form->addSelect('ulice', 'Ulice: ', array())
->setPrompt('Zvolte město')
->setRequired('Zvolte ulici.');
$form->addText('cisloPopisne', 'Číslo popisné: ')
->setRequired('Zadejte číslo popisné.');
js
$('select#frm-pridatPolozkuForm-mesto').change(function () {
$.nette.ajax({
url: urlInvalidePridatPolozkuForm,
data: {
'cisloBudovy': $('input#frm-pridatPolozkuForm-cisloBudovy').val(),
'mesto': $('select#frm-pridatPolozkuForm-mesto').val(),
'ulice': $('select#frm-pridatPolozkuForm-ulice').val(),
'cisloPopisne': $('input#frm-pridatPolozkuForm-cisloPopisne').val(),
'technik': $('select#frm-pridatPolozkuForm-technik').val(),
'poznamka': $('textarea#frm-pridatPolozkuForm-poznamka').val(),
},
success: function (payload, status, jqXHR, settings)
{
},
complete: function()
{
_nsNasDum.nastaveni.hlavniFormular();
}
});
});
invalide funkce v presenteru
function handleInvalidePridatPolozkuForm($cisloBudovy, $mesto, $ulice, $cisloPopisne, $technik, $poznamka)
{
$form = $this['pridatPolozkuForm'];
$form['cisloBudovy']->setDefaultValue($cisloBudovy);
$form['mesto']->setDefaultValue($mesto);
$form['cisloPopisne']->setDefaultValue($cisloPopisne);
if($technik!='')
{
$form['technik']->setDefaultValue($technik);
}
$form['poznamka']->setDefaultValue($poznamka);
if($mesto != "")
{
$uliceArr = $this->setPridatPolozkuFormUlice($mesto);
$form['mesto']->setDefaultValue($mesto);
$form['ulice']->setItems($uliceArr)
->setPrompt(' -- ');
}
$this->redrawControl('pridatPolozkuForm');
}
zvolena hodnota ULICE je furt NULL
Editoval vosy (16. 6. 2015 10:18)