Vypnutí validace u selectu

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

Zdravím,

mohu nějak vypnout validaci u selectu ? U obyčejného selectu je vždy vybrána defaultně první hodnota v selectu, ale když mám u selectu nastaven [size], tak není vybrána žádná hodnota. Potřeboval bych mu vypnout validaci aby mi form prošel i bez vybrání hodnoty.. Dokonce ani nepotřebuji aby se hodnota odeslala. Neřešil jste někdo ?

Nechce se mi kvůli pár prvkům přejít na onSubmit() z onSuccess().

Díky za pomoc.

Editoval kleinpetr (28. 1. 2016 10:17)

ViPEr*CZ*
Člen | 822
+
0
-

Nastavte si první hodnotu … viz dokumentace: https://doc.nette.org/cs/forms#…
Případně validace se dá i vypnout: https://doc.nette.org/cs/forms#…

kleinpetr
Člen | 480
+
0
-

Vím, že můžu vypnout validaci na submit buttonu nebo nastavim validationScope, ale to mi úplně neřeší můj problém, protože formulář obsahuje spoustu elementů a předem nevím co vše ve formuláři bude. A nastavit první hodnotu mě také napadlo, ale logicky v tom případě to nedává moc smysl. Proto bych potřeboval něco jako setOmitted() ale aby to vypnulo i validaci u selectu…

Editoval kleinpetr (28. 1. 2016 10:27)

David Grudl
Nette Core | 8282
+
0
-

To je bug, pokud ma select size, nemel by byt povinny.

kleinpetr
Člen | 480
+
0
-

Aha, zkusím prověřit na jiném projektu. Díky

kleinpetr
Člen | 480
+
0
-

Tak jsem to prověřil a opravdu to tak nefunguje, u multiSelectu to funguje správně, ale pokud přidám obyčejný select a nastavím mu size, tak po odeslání ho zvaliduje a hodí klasicky Please select a valid option.

ViPEr*CZ*
Člen | 822
+
+1
-

Aha, taky díky za informaci. Možná by vypínání validace mohlo přes nějakou jinou metodu říkat co vlastně vypínám a ne co chci validovat.

kleinpetr
Člen | 480
+
0
-

Jojo, no to by bylo taky fajn, buď to nastavit u elementu třeba ->setValidation(FALSE) a nebo u toho Submitu. Ale pokud by se normální select s atributem size choval stejně jako multiSelect, tak by to dávalo smysl, protože při [size] není nastavena defaultní hodnota, resp. první hodnota.

Editoval kleinpetr (28. 1. 2016 11:55)

David Grudl
Nette Core | 8282
+
+1
-

Opraveno

kleinpetr
Člen | 480
+
0
-

Díky, jen ještě menší dotaz, updatnul jsem nette/froms přes composer na v2.3.7, ale když jsem se podíval na SelectBox.php tak neodpovídá commitu, je pořád zastaralý. Co dělám špatně ?

David Matějka
Moderator | 6445
+
0
-

zatim je to jen v masteru. bud pockej na novou verzi, nebo si vyzadej master.

kleinpetr
Člen | 480
+
0
-

ok díky

kleinpetr
Člen | 480
+
0
-

Pár otázek ke composeru, chtěl bych si trochu objasnit composer..

  1. když mám v composer.json nette/application: 2.3.6 a dam composer update, tak se mi updatne vše na nejnovejsi verze a zároveň mám composer.json hezky rozdělenej na části forms,http,mail,.. Ale kdyz u starsiho projektu mám nette/nette: 2.3.0 tak za prvy je toho malo v composer.json ale kdyz ho updatnu, tak se mi u forms nacte jen verze v2.3.6 a v nette/application mám hodnotu „^2.3“ coz taky nevim co znamena..
  2. Jak mohu například ten projekt kde je nette 2.3.0. updatnout na nejnovejsi verzi ?
  3. řekl jsi vyžádat si master, tak jsem zkusil nette/forms: „master“ ale to neprošlo, ale když dám nette/forms: "@dev" tak mi to načte. Tak jsem z toho trochu zmatenej a potřeboval bych si v tom udělat jasno.

Díky

David Matějka
Moderator | 6445
+
0
-

Ale kdyz u starsiho projektu mám nette/nette: 2.3.0 tak za prvy je toho malo v composer.json ale kdyz ho updatnu, tak se mi u forms nacte jen verze v2.3.6

asi tam mas verzi ~2.3.0 nebo neco podobnyho, ne? kdyby tam bylo presne 2.3.0, tak se ti to neaktualizuje.

na 2.3.6 se ti to aktualizovalo proto, ze posledni „hlavni“ verze nette je 2.3.8, ktera byla vydana pred dvouma mesicema a ma prave zavislost na forms 2.3.6. Od te doby ale vysly dalsi verze jednotlivych komponent (prave treba forms 2.3.7)

nette/application mám hodnotu „^2.3“ coz taky nevim co znamena..

kde „mas hodnotu“? v composer.json? nebo kde? ma to spojitost se semver, viz doc, ale to se u nette moc nehodi, jelikoz semver nedodrzuje

Jak mohu například ten projekt kde je nette 2.3.0. updatnout na nejnovejsi verzi ?

zbav se nette/nette zavislosti a uved tam jednotlive balicky

řekl jsi vyžádat si master, tak jsem zkusil nette/forms: „master“ ale to neprošlo, ale když dám nette/forms: "@dev" tak mi to načte. Tak jsem z toho trochu zmatenej a potřeboval bych si v tom udělat jasno.

ano, to je ok. kdyz chces nejakou vetev, nejde to napsat primo, ale treba dev-master, @dev znamena vyvojova verze, neznam presne ty pravidla, ale vetsinou je to to stejne, jako dev-master

kleinpetr
Člen | 480
+
0
-

composer.json

"require": {
		"php": ">= 5.3.7",
		"nette/nette": "~2.3.0”,
		"dg/adminer-custom": "~1.6",
		"kdyby/curl": "@dev",
		"nette/application": "^2.3"
	},

No jako chápu, že třeba nette 2.3.8 má závislost na forms 2.3.6, ale potom nechápu, že když u jiného projektu mám v composer.json nette/application: „~2.3.6“ a dal jsem composer update tak mi nainstaloval nette 2.3.9 a forms 2.3.7

Z jakých větví teda načítá composer ?

Jinak mockrát díky za odpověď :)

Editoval kleinpetr (28. 1. 2016 14:17)

harmim
Člen | 26
+
0
-

Pokud v composeru uvedeš jenom číslo např nette/nette": "~2.3.0, tak se composer nedívá ne větve, ale na tagy. Kdybys chtěl větev, která se jmenuje 2.3 tak bys to musel napsat takhle nette/nette": "2.3-dev. Pokud název větve není ve tvaru verze, potom se dev píše před to např. dev-master. Pro master ještě funguje tohle @dev.

Jinak, když máš v composer.json uvedené nette/nette, ve kterém je závislost na nette/application a potom tam máš ještě přímo závislost na nette/application, tak možná záleží na pořadí, v jakém to tam máš napsané, nejsem si jistý. Taky se tam dá přímo nějak říct, jakou verzi má composer preferovat. Přesně si to nepamatuji, ale všechno je to v dokumentaci. https://getcomposer.org/doc/

David Matějka
Moderator | 6445
+
0
-

v composer.json nette/application: „~2.3.6“ a dal jsem composer update tak mi nainstaloval nette 2.3.9 a forms 2.3.7

application nema zavislost na forms, takze se ti to nainstalovalo asi dle jine zavislosti. A nette 2.3.9 se ti nainstalovat nemohlo, protoze neexsituje.

Z jakých větví teda načítá composer ?

nevim, jestli chapu otazku. Ale koukni se treba na packagist, tam uvidis, jaky ma nette zavislosti. composer se dle stromu zavislosti snazi vytvorit optimalni reseni, co ma stahnout.

kleinpetr
Člen | 480
+
0
-

Jasně, trochu se mi pomíchaly pojmy nette a nette/application. Mockrát díky za objasnění ohledně composeru.