Vlastní hodnota v selectu

jedlicka
Člen | 70
+
0
-

Zdravím,

měl bych dotaz na zadání vlastní hodnoty do selectu.

Mám formulář, který obsahuje select s daty:

$data = array("1", "2", "3");
$form->addSelect('data', '', $data)->setHtmlId('data');

V latte mám v Javascriptu nastaveno to, že select je select2 a je možné vložit vlastní data (tags: true):

$('#data').select2({
   tags: true
});

Formulář ale nelze odeslat, jelikož je chyba validace – vlastní data zadaná do selectu nejsou součástí pole $data.

Lze toto nějak ošetřit? Vlastní validace selectu, přidání nové hodnoty do pole…

Děkuju.

Martin

nightfish
Člen | 516
+
0
-

@jedlicka https://doc.nette.org/…rms/controls#…

Prvek automaticky kontroluje, že nedošlo k podvržení a že vybraná položka je skutečně jednou z nabízených a nebyla deaktivovaná. Metodou getRawValue() lze získat odeslanou položku bez této důležité kontroly.

jedlicka
Člen | 70
+
0
-

@nightfish Díky, ale je možné nějak přidat vlastní zadanou hodnotu do seznamu položek? V současné chvíli je data = null, pokud např. zadám do selectu číslo 5 (které není v default seznamu).

Myslel jsem, že půjde validace vypnout pomocí $select->checkDefaultValue(false), ale to nefunguje, jelikož problém není v tom, že nová hodnota není v seznamu (chyba: Value are out of allowed set in field), ale naopak hlásí chybu: Please select a valid option.

Editoval jedlicka (15. 10. 15:55)