ořezaní bílého místa pri nastaveni hodnoty do textarea

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

Chci se zeptat pri nastavovaní hodnoty prvku formuláře dochazi k orezeani bilych mist? Da se to vypnout?

Ve formuláři mam texareu, kde kdyz ulozim na zacatku prazdny radek:

prazdny radek
text
prazdny radek
text
prazdny radek
text

V databazi je tez ulozen prazdny radek i pri získaní z databáze ale pri vykreslení formuláře, tedy po:

$this['addEditForm']['spec']->setDefaultValue($product->spec);

Se v textaree jiz prazdny radek na zacatku nevypíše.

Jak docili aby tam zustal?
Díky

David Grudl
Nette Core | 8239
+
0
-

U textarea k ořezávání bílých míst nedochází.

Domki
Člen | 310
+
0
-

Proč se mi tedy text v dabazí:
'

Popis

nejaky text'

Pri nastavení defaultValue nastaví bez prvního prázdného řádku, tedy začne hned slovem Popis? Jedná se o čistou textareu.
Tedy při naslednem odeslani a uložení uz v databazi je :
'
Popis

nejaky text'

Editoval Domki (6. 3. 2017 7:57)

ali
Člen | 342
+
0
-

@Domki tedka jsem to odzkousel a v onSuccess callbacku mi text area vratila stejnou hodnotu, jakou jsem do ni vlozil:

"
test

test"

Testovano na nette/forms v2.4.3

Domki
Člen | 310
+
0
-

To ale s odeslaním a metodou onSucees nesouvisí ne?
Když to odešlu tak se to do db uloží správně. Ale při načtení formuláře pro editaci zaznamu, se textarea vyplni bez prazdneho radku na zacatku.

$this[‚addEditForm‘][‚spec‘]->setDefaultValue($product->spec); // Před timto řadkem v $product->spec je ještě řetezec s prazdnym radkem na začátku. V textaree se již ale neobjeví

matopeto
Člen | 395
+
0
-

Ukaz ake html vygenerovalo, a ako vypisujes tu textarea v latte.

Editoval matopeto (6. 3. 2017 10:22)

Domki
Člen | 310
+
0
-

Jo vypisuji to manuálné :

<div class="form-group">
			<label n:name="specification" for="frm-addEditProduct-addEditProductForm-specification"
			                              class="col-sm-1 control-label">
				Specifikace <br><br>
				<div class="btn btn-default makeGoodLine">Odřádkovat</div>
			</label>
			<div class="col-sm-11">
				{input specification class=>"form-control"}
			</div>
		</div>

A vygeneruje to takovéto html

<div class="form-group">
			<label for="frm-addEditProduct-addEditProductForm-specification" class="col-sm-1 control-label">
				Specifikace <br><br>
				<div class="btn btn-default makeGoodLine">Odřádkovat</div>
			</label>
			<div class="col-sm-11">
				<textarea name="specification" rows="10" id="frm-addEditProduct-addEditProductForm-specification" class="form-control">FORCE produkt

tvrda

reflexní prvky

Hmotnost
260 g</textarea>
			</div>
		</div>

A do toho setdefaultvalue jde:
'
FORCE produkt

…'

A kdyz po nastaveni default value vypisu:
Debugger::barDump($this[‚addEditProductForm‘][‚specification‘]);
Tak je tam stale jeden radek prazdny:

Nette\Forms\Controls\TextArea #c939
emptyValue protected => ""
rawValue protected => "
FORCE produkt

tvrda

reflexní prvky

Hmotnost
260 g" (70)
nullable private => NULL
caption => "Specifikace" (11)
value protected => "
FORCE produkt

tvrda

reflexní prvky

Hmotnost
260 g" (70)

A když misto první prazdny radek neudelam jen pomocí enteru, ale přidam do nej mezeru pak je to ok

Editoval Domki (6. 3. 2017 13:44)

David Matějka
Moderator | 6445
+
0
-

co mas za verzi nette? mne to funguje ok. kdyztak zkus vytvorit example na sandboxu

Domki
Člen | 310
+
0
-

Verzi mám 2.4. no jako už jsem to nějak vyřešil a to tak že před nastavenm default hodnoty nahradím první ‚\n‘ za ' \n' -pridam před mezeru, pak už to funguje ok

Editoval Domki (7. 3. 2017 9:28)