MyCashflow'ssa kaikki lomakkeet noudattavat tiettyjä rakenteellisia sääntöjä kassoilla ja muissa lomakkeissa, kuten tuotteen lisäämisessä ostoskoriin ja hakulomakkeella. Tässä artikkelissa käydään läpi MyCashflow'n lomakkeiden rakenne.
Jokainen lomakkeen kohta on ympäröity elementillä <div class="FormItem">
. Pakollisilla lomakkeen kohdilla on myös luokkanimi 'required'. Lisäksi riippuen elementin funktiosta, sillä on lisäluokkanimi, joka annetaan seuraavien sääntöjen pohjalta:
- Lomakeosiolla voi olla header-osio
<div class="FormItem HeaderItem">
.- Otsikkoelementin sisällä on otsikkoelementti
<h2>
, sekä tekstikappale<p>
, joka toimii täytettävän lomakekokonaisuuden yleisenä ohjeena. - Lomakkeiden ohjetekstit ovat kaikki muokattavissa verkkokaupan sanakirjassa.
- Otsikkoelementin sisällä on otsikkoelementti
- Jos yksi osio sisältää useita ryhmiteltäviä lomakekenttiä, osiolle annetaan lisäluokkanimi 'GroupItem'.
- Tämän ryhmän aloittaa ryhmäkokonaisuutta kuvaava selite
<label class="GroupLabel">
, jonka jälkeen jokainen kokonaisuuden osa on oman<div>
-elementtinsä sisällä. Näiden lohkojen sisällä on aina selite, jonka jälkeen tulee joko<input>
- tai<select>
-elementti.
- Tämän ryhmän aloittaa ryhmäkokonaisuutta kuvaava selite
- Jos kyseessä ovat valintaruudut tai -painikkeet (
<input type="checkbox/radio">
), osiolle annetaan lisäluokkanimi 'CheckWrap'. Tällainen elementti voi olla joko<div>
tai<fieldset>
.- Tämän ryhmän sisällä on ensimmäisenä tekstikappale
<p class="label">
. - Aloittavan tekstikappaleen jälkeen aloitetaan valintaruudut ja -napit sisälleen sulkeva elementti
<div class="Checks">
.- Jokainen valintaruutu tulostetaan selite-elementin sisään (
<label>
) ja valintaruudun jälkeen tulostetaan valinnan nimi. - Selite-elementin sulkemisen jälkeen voidaan mahdollisesti tulostaa vielä tekstikappale
<p class="FormHelp">
, jossa on valinnan ohje tai aputeksti.
- Jokainen valintaruutu tulostetaan selite-elementin sisään (
- Tämän ryhmän sisällä on ensimmäisenä tekstikappale
- Lomakkeen tietojen lähetyksen sisältävä elementti on
<div class="FormItem FormSubmit">
.- Tämän elementin sisällä on aina painike (
<button>
) ja jos kyseessä on pääasiallinen lomakkeen lähetyspainike, sillä on lisäksi luokkanimi 'SubmitButton'. - Painikkeen jälkeen saattaa lisäksi tulla tekstikappale, jossa on linkki vaihtoehtoiseen toimintoon. Tekstikappaleella on luokkanimi 'FormAltAction'.
- Tämän elementin sisällä on aina painike (
Alla on esimerkiksi asiakastietojen muokkauslomakkeen merkkaus kokonaisuudessaan:
<form action="/account/edit/" method="post" id="EditContactInfoForm">
<fieldset id="EditContactInfo">
<input type="hidden" name="on_success" value="/account/">
<div class="FormItem HeaderItem">
<h2>Muuta omia tietojasi</h2>
</div>
<div class="FormItem required ">
<label for="email">Sähköposti</label>
<input id="email" type="email" name="customer[email]" autocomplete="email" value="tino@pulse247.info" size="27">
<div id="OrderNewsletter" class="Checks InlineCheck">
<label for="email_subscription">
<input type="checkbox" name="customer[email_subscription]" id="email_subscription" value="1"> Kyllä, haluan tilata ilmaisen uutiskirjeen.</label>
</div>
</div>
<div class="FormItem GroupItem required ">
<label for="firstname" class="GroupLabel">Nimi</label>
<div class="">
<label for="firstname">Etunimi</label>
<input id="firstname" name="customer[firstname]" autocomplete="given-name" value="Tino" type="text" size="18">
</div>
<div class="">
<label for="lastname">Sukunimi</label>
<input id="lastname" name="customer[lastname]" autocomplete="family-name" value="Kraft" type="text" size="18">
</div>
</div>
<div class="FormItem GroupItem required ">
<label for="street_address" class="GroupLabel">Osoite</label>
<div class="">
<label for="street_address">Postiosoite</label>
<input id="street_address" name="customer[street_address]" autocomplete="street-address" value="LSKDNL" class="long" type="text" size="27">
</div>
<div class="">
<label for="postal_code" class="required">Postinumero</label>
<input id="postal_code" name="customer[postal_code]" autocomplete="postal-code" value="33100" class="short" type="text" size="8">
</div>
<div class="">
<label for="post_office" class="required">Postitoimipaikka</label>
<input id="post_office" name="customer[post_office]" autocomplete="address-level2" value="Tampere" type="text" size="18">
</div>
</div>
<div class="FormItem required">
<label for="country">Maa</label>
<select name="customer[country]" id="country">
<option value="af">Afganistan</option>
<option value="ax">Ahvenanmaa</option>
...
</select>
</div>
<div class="FormItem">
<label for="phone">Puhelin</label>
<input id="phone" type="text" name="customer[phone]" autocomplete="tel" value="0405353543" size="27">
<div class="Checks InlineCheck">
<label for="sms_subscription">
<input type="checkbox" name="customer[sms_subscription]" id="sms_subscription" value="1"> Minulle saa lähettää tekstiviestejä </label>
</div>
</div>
<div class="FormItem GroupItem">
<label for="company" class="GroupLabel">Yritys</label>
<div class="">
<label for="company">Yritys</label>
<input id="company" name="customer[company]" autocomplete="off" value="" class="long" type="text" size="27">
</div>
<div class="">
<label for="vat_code">Y-tunnus</label>
<input id="vat_code" name="customer[vat_code]" autocomplete="off" value="" class="short" type="text" size="8">
</div>
</div>
<div class="FormItem FormSubmit">
<button type="submit" class="SubmitButton"><span>Tallenna</span></button>
<p class="FormAltAction Cancel">tai <a href="/account/">
<span>peruuta ja palaa takaisin</span>
</a></p>
</div>
</fieldset>
</form>