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
+
0
-

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)