Jak tlačítko Submit obalit dalším HTML?

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

Potřeboval bych odesílací tlačítka obalit tagem LABEL a současně před každé vykreslit obrázek.
Žádoucí stav:

<label>
  <img src="adresar/s/obrazky/save.png" alt="" />
  <input type="submit" name="save" value="Uložit" />
</label>

<label>
  <img src="adresar/s/obrazky/back.png" alt="" />
  <input type="submit" name="back" value="Zpět" />
</label>

Zkoušel jsem to úpravou renderovací třídy, ale dosáhl jsem pouze toho, že do LABELu jsou obalena všechna tlačítka a obrázek pouze před prvním tlačítkem.

Napadá někoho nějaké řešení?

Petr Mašát
Člen | 101
+
0
-

Ahoj,
mohl by jsi to udělat tak že si napíšeš vlastní renderer – viz: http://zdrojak.root.cz/…rmulare-iii/ , ale z webařského hlediska je špatně tam dávat tag img. Použij v CSS něco jako:

input[type="submit"] {
 padding-left: 20px;
 background: transparent url('cesta-k-obecnzmu-obrazku') left center no-repeat
}
input[type="submit"].back {background-image: url('...');}
input[type="submit"].save {background-image: url('...');}

A pak tomu submitu přidávej class pomocí https://forum.nette.org/…-k-formulari

Jediný problém je že ti to nebude fungovat v IE6, ale myslím že to není věc která by ohrozila funkčnost stránek → ignoruj to :-)

Lawondyss
Člen | 106
+
0
-

Ale mé ikonky tlačítko samotné přetékají.

Petr Mašát
Člen | 101
+
0
-

Jestli myslíš pojmem přetékají, že jsou mimo tlačítko, tak ano ale nejde na ně ani kliknout → zbytečně budeš mást návštěvníky webu, jenž třeba nekliknou přímo na tlačítko, ale na obrázek vedle něho a nic se jim neodešle. A nebo to chápu zcela špatně?

Lawondyss
Člen | 106
+
0
-

Chápeš to správně. Jenom s tím rozdílem, že tlačítko i za obrázkem jsou zabaleny do tagu LABEL, takže i obrázek je klikatelný.

Petr Mašát
Člen | 101
+
0
-

Toho odeslání pomocí labelu jsem si zprvu neuvědomil, ale stejnak do tagu img patří jen sémantický významné obrázky, což nevím zda se u zpětné šipečky dá obhájit. Dále co když budeš někdy v budoucnu ten obrázek odstaranit? když to budeš mít v css tak je to na cca pět minut, ale když to budeš mít porůznu v projektu na X místech tak ti to chvíli potrvá.
Připadá prostě zvláštní řešit něco pomocí html kontrukce co se má řešit pomocí css. Ale jestli se chceš vydat touto cestou tak řešení je ve vlastní rendereru. Můžeš pls. poslat jak jsi napsal ten renderer?