Jump to content
php.lv forumi
  • 0

paslēpt - parādīt kontroļus


Question

Posted (edited)

Kā pareizi izdarīt sekojošo:

 

 

Formā ir iespēja izvēlēties vai tā būs juridiska persona vai fiziska.

<tr>

<td>Klienta tips: </td>

<td><input type="radio" name="group_type" value="fiziska"> Fiziska persona<br>

<input type="radio" name="group_type" value="juridiska" checked> Juridiska persona<br></td>

</tr>

 

Un ir kolonnas - vārds un uzvārds.

<tr> <td>Vārds: </td> <td><input type="text" name="txtName" maxlength="30"/></td> </tr>

<tr> <td>Uzvārds: </td> <td><input type="text" name="txtSurname" maxlength="30"/></td> </tr>

<tr> <td>Uzņēmuma nosaukums: </td> <td><input type="text" name="txtEnterpriseName" maxlength="100"/></td> </tr>

 

Kā lai izdara, lai - ja radiobutton ir fiziska persona, tad rādās gan vārds, gan uzvārds.

Ja radiobutton ir juridiska persona, tad rāda tikai uzņēmuma nosaukums.

 

Šādi ir ar ļoti daudzām kolonnām - atkarībā no radiobuttona kādas 10 kolonnas mainās (vai tās rāda, vai nerāda).

 

Man šķiet, ka tas darāms ar JavaScript, bet pagaidām tikai mācos...

Edited by echo

6 answers to this question

Recommended Posts

  • 0
Posted

Tu label tagu izmanto nepareizi. To jālieto tikai apkārt tekstam, kas attiecas uz konkrēto labeli:

<br /> Klienta tips:
<br />
<input type="radio" name="group_type" value="fiziska"> Fiziska persona<br>
<input type="radio" name="group_type" value="juridiska" checked> Juridiska persona<br>
<br/>

Un ir kolonnas - vārds un uzvārds.
<br /><label for="txtName">Vārds</label>: <input type="text" id="txtName" name="txtName" maxlength="40"/>
<br /> <label for="txtSurname">Uzvārds</label>: <input type="text" id="txtSurname" name="txtSurname" maxlength="40"/>
<br /> <label for="txtTitle">Nosaukums</label>: <input type="text" name="txtTitle" maxlength="40"/>

(ieteiktu arī izmest ārā tos <br/> tagus un lietot izskata formēšanai CSS, bet nu tā ir cita tēma)

 

Par tavu lauku slēpšanu - pieliec tiem inputiem onchange eventu: onchange="person_changed();"

Un uztaisi javaskriptā funkciju person_changed, kurā vai nu slēp, vai nu rādi vajadzīgos laukus:

function person_changed()
{
var fiziska_persona = document.getElementsByName("group_type")[0].checked;
$("txtName").style.display = fiziska_persona ? "inline" : "none";
$("txtSurname").style.display = fiziska_persona ? "inline" : "none";
$("txtTitle").style.display = fiziska_persona ? "none" : "inline";
}

(šeit ar $ domāts funkcija, kas atgriež elementu pēc tā id - document.getElementByID)

  • 0
Posted

bubu: es noeditēju postu laikam pirms tu atbildēji - es nomainīju labelus pret tabulu, vai tas ir normāli (vai arī labāk tomēr ar to css?)

Tad tas javascripts jāpieliabot, lai viņš slēptu/rādītu tabulas rindiņas?

  • 0
Posted

Tas saucās semantika un zinātnieki joprojām strīdas, kas ir labāk :) Īsi sakot garo tekstu - tabulas vajag izmantot tabulāriem datiem, bet CSS pārējā noformatēšanai. Tava input forma neizskatās pēc tabulāriem datiem, tāpēc tomēr tabulas tur īsti pēc savas būtības (tabula) neiederās. Savu input formu vari noformatēt diezgan viegli arī ar CSS: http://www.alistapart.com/articles/prettyaccessibleforms

 

Javaskriptam par noformējumu liels vienalga - tas strādās arī tavā tabulu variantā.

  • 0
Posted

Ah pareiz - piešķir to $("...") vietā vajag rakstīt nevis input id vērtības, bet gan piešķirt id tabulu rindām un rakstīt tos tur. Vai arī li elementiem, ja veidosi formu bez tabulām.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...