Jak se přidá HTML atribut k Nette\Forms\TextInput?

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

Ahoj,

chtěl bych přidat atribut title k prvku Nette\Forms\TextInput a trochu tápu. Použil jsem následující kód:

<?php
$control = $password->getControlPrototype();
$control->title = "The %label must contain only visible ASCII characters.";
?>

V tomto případě nedojde k nahrazení %label za název prvku, jako to funguje u $password->addRule(). Existuje ještě nějaká lepší alternativa?

sharkcz
Člen | 28
+
0
-

Nemá někdo nějaký nápad? Za celé 4 mesíce se nenašel někdo, kdo by tomu rozuměl?

Potřebuji atribut title u formulářového prvku z důvodů validace ve FF a Webkitu. V title se má nacházet nahrazené %label za název prvku, text má být lokalizovaný pomocí formulářového translatoru.

Nox
Člen | 378
+
0
-

Control prototype už myslim není zpracovávaný formulářovými mechanismy, % funguje u pravidel, která přímo souvisí s formulářovou logikou

Budeš asi muset použít nějaké str_replace, sprintf nebo tak … nejlépe uzavřené do nějaké univerzální funkce (anebo si napsat něco, co ti nahradí titly, anebo i jiné atributy…to už záleží jak to potřebuješ)

Jan Endel
Člen | 1016
+
0
-

Teoreticky by šlo podědit pouze Nette\Forms\Controls\TextInput a přepsat metodu setAttribute:https://api.nette.org/…rol.php.html#177 tak aby replacovala tebou daný string.

uestla
Backer | 799
+
0
-

Osobně mi to přijde natolik speciální problém, že bych ho řešil přímočaře…

$control = $password->getControlPrototype();
$control->title("The '{$password->caption}' must contain only visible ASCII characters.");