webForumDet fria alternativet

Novis på javascript, behöver hjälp med visa/dölj-funktioner

JavaScript

4 svar · 771 visningar · startad av Helmertz

Medlem sedan maj 2005353 inlägg
Frågan#1

Jag kan inte någon JS alls ännu men behöver en funktion som på ett semantiskt vis lägger till ökad funktionalitet till ett formulär. Effekten jag vill åt är att visa/dölja ett element med ID:t homeDelMenu beroende på vilken radioknapp som är ifylld, den med ID:t homeDel (visa) eller den med ID:t pickupDel (dölj).

Jag vill inte ha någon JS alls i HTML-koden utan getElementById får gärna användas.

Radioknapparna har även labels som hör till vardera knapp, antagligen borde man alltså undersöka efter en ifylld radioknapp istället för ett onclick som kanske inte märker av ett tryck på en label. Vad vet jag :)

mvh, js-noobien (rätta mig hårt ifall jag har fel i mina antaganden, jag vill ju trots allt lära mig något :stud )

Medlem sedan feb. 20034 441 inlägg
#2

Sök lite i det här forumet, finns massor med liknande trådar.
Använd ord som "visa dölj", "visa / dölj", "visa formulär" osv. vid din sökning så hittar du nog vad du söker.

Medlem sedan maj 2005353 inlägg
#3

De enda lösningarna jag hittar innebär attribut som "href=onclick.." vilket inte önskas. All HTML ska visas om JS är avaktiverat, därför vill jag ha JS som:

  • Döljer id.
  • Märker om en radioknapp är ifylld och visar i så fall id.
  • Märker om radioknappen avmarkeras och döljer i så fall id.
Medlem sedan jan. 2003296 inlägg
#4

Det var värst vad du är anti-onclick :)
Men här är lite kod för att göra det (jag tror) du vill göra. Den använder iofs onclick, även om det inte syns i html-koden.

function showOrHideDeliveryMenu()
{
	if (document.getElementById("pickupDel").checked)
		document.getElementById("homeDelMenu").style.display = "none";
	else
		document.getElementById("homeDelMenu").style.display = "block";
}

window.onload = function()
{
	document.getElementById("homeDel").onclick = showOrHideDeliveryMenu;
	document.getElementById("pickupDel").onclick = showOrHideDeliveryMenu;

	showOrHideDeliveryMenu();
}
Medlem sedan maj 2005353 inlägg
#5

Tack, det fungerade finemang.

310 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
174 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)