Při editaci záznamu prostý text a hidden namísto inputu

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

Ahoj, nemáte někdo FormControl pro následující situaci?

Mám zjednodušený formulář pro vytvoření uživatele:

$form = new AppForm( $this, $name );
$form->addText( 'username', "Username:" );
$form->addText( 'realname', "Realname:" );

Který se renderuje cca takto:

<form>
	<table>
		<tr><th>Username:</th><td><input name="username" ...></td></tr>
		<tr><th>Realname:</th><td><input name="realname" ...></td></tr>
	</table>
</form>

A já bych při editaci uživatele Milo pomocí actionEdit() chtěl nahradit control $form["username"] jiným, který by se renderoval takto:

<form>
	<table>
		<tr><th>Username:</th><td>Milo</td></tr>
		<tr><th>Realname:</th><td><input name="realname" ...></td></tr>
	</table>
	<div>
		<input type="hidden" name="username" value="Milo">
	</div>
</form>

Nemáte? :) Nebo mě aspoň nakopnout správným směrem. Nechci to dělat tak, že odeberu $form["username"], přidám hidden a nějaký vlastní „fake“ control. Chtěl bych to mít řešené jednou komponentou…

Ped
Člen | 64
+
0
-

co tak predvyplnit Text-u hodnotu Milo a nastavit ho readonly? Na vystupu bude porad <input>, ne <td>, ale jinak to dela zhruba to co chces.

Milo
Nette Core | 1283
+
0
-

To už jsem zkoušel a jde to tak, ale rád bych měnil vzhled + k tomu třeba ještě vykreslovat avatara. Mám i control, který vykreslí hodnotu a hidden v buňce…

<tr><th>Username:</th><td>Milo<input type="hidden" name="username" value="Milo"></td></tr>

… nebo jsem to modifikoval javascriptem, stále to ale není ideál.

jtousek
Člen | 951
+
0
-

Nebylo by jednodušší to při actionEdit označit jako disabled? Z hlediska formulářů mi to připadá i čistší.

Editoval jtousek (17. 12. 2010 17:38)

Milo
Nette Core | 1283
+
0
-

Když je hodnota disabled, tak se potom neodešle. Kdežto pokud ji změnim na hidden, tak na ní můžu nechat klidně všechna validační pravidla.