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