js validace po stisku buttonu (ne submitu)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
mrazek85
Člen | 9
+
0
-

Ahoj,
mám formulář pro registraci firmy (ičo, dič adresa, atd)

<?php
        $form->addText('orgId', 'IČ')
                  ->setRequired('Vyplňte prosím IČ')
                  ->addRule(\UserFormRules::ORGID, 'IČ je chybně napsané');

        $form->addButton('import', 'Načíst data')
                  ->setAttribute('data-import', $form['orgId']->getHtmlName())
                  ->setAttribute('data-source', $this->link('getDataFromAres!'))
                  ->setOmitted();

        $form->addText(....
        $form->addSubmit('send', 'Uložit');
?>

kdy po vyplnění výsledek uložím do databáze atd..

ale chci udělat tlačítko na načtení z aresu – chtěl jsem to řešit tím buttonem viz výše – jelikož neodesílá formulář.. a chtěl bych poslal ajaxem ičo a parsovat json a doplnit údaje do chybějících polí .. to vše mám.. jen bych potřeboval, pokud se vyplní blbosti do iča, abych to neřešil až z odpovědi ajaxu, ale už na straně klienta přede odesláním..

jde nějak napojit button, aby validoval po kliku jen ten input „orgId“ a případně vyhodil hlášku o nevyplnění nebo chybě ?

Felix
Nette Core | 1245
+
0
-

Myslim, ze setValidationScope je presne to co hledas.


Formulare – vypnuti validate / castecna validace

$form->addText('name')->setRequired();

$details = $form->addContainer('details');
$details->addInteger('age')->setRequired('age');
$details->addInteger('age2')->setRequired('age2');

$form->addSubmit('send1'); // Validuje celý formuláře
$form->addSubmit('send2')->setValidationScope(FALSE); // Nevaliduje vůbec
$form->addSubmit('send3')->setValidationScope([$form['name']]); // Validuje pouze pole name
$form->addSubmit('send4')->setValidationScope([$form['details']['age']]); // Validuje pouze pole age
$form->addSubmit('send5')->setValidationScope([$form['details']]); // Validuje kontejner details