webForumDet fria alternativet

Hur använder man en funktion på 20 input's utan ID tag?

JavaScript

8 svar · 326 visningar · startad av Danielkun

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

Jag har skrivit ett Javascript som ändrar bakgrundsfärgen på input rutan i ett formulär beroende på vilken bokstav som står där. (Tex. Skriver man "A" i en ruta blir bakgrundsfärgen röd..)

Jag vill använda scriptet på 20 st input boxar och det skapar ett problem eftersom jag bara kan ha ett ID. (Och jag vill inte kopiera upp koden 20 ggr)

Finns det någon bra lösning?

<html>
<head>

<script language="JavaScript">
<!--
function daniel(ivalue){
if(ivalue=="A" || ivalue=="a"){ the_form.BG.className='A'; }
if(ivalue=="B" || ivalue=="b"){ the_form.BG.className='B'; }
if(ivalue=="C" || ivalue=="c"){ the_form.BG.className='C'; }
}
//-->
</script>

<style type="text/css">
input.A { background-color: #FF0000; }
input.B { background-color: #00FFCC; }
input.C { background-color: #0000FF; }
</style>

</head>
<body>

		
<form name="the_form">
	<p><input type="text" name="T1" size="20" onchange="daniel(this.value)" ID="BG"></p>
</form>

</body>
</html>
Medlem sedan juni 200032 967 inlägg
#2

Ha olika id:n, och skicka med id till funktionen med det vettiga namnet daniel.

Edit: varför kan du bara ha ett id? Flera element får inte ha samma id.

Medlem sedan maj 2003361 inlägg
#3

Tack!

Jag kan ha flera ID'n. Jag ville bara inte ge ett unikt ID till varje input och sen kopiera upp koden till varje input. Visste inte att man kunde skicka med ID't till funktionen. Ska undersöka dettta.

Tänkte eventellt om det fanns ett lättare sätt att lösa det på med.

Medlem sedan juni 200032 967 inlägg
#4
function daniel(ivalue,objid){
document.getElementById(objid).className='A';
<input type="text" name="T1" size="20" onchange="daniel(this.value, 'BG')" ID="BG">
Medlem sedan maj 2003361 inlägg
#5

Tack så mcyket!!

Funkar perfekt!

Medlem sedan maj 2003361 inlägg
#6

Hm.. hur får jag den att funka med flera färger?
Det ska blir olika färger beroende på vilken bokstav som matas in.. testade att skriva om koden lite men jag får det inte att funka.

La till en loop i koden nu som ger unikt nummer till varje input.

Tack för hjälpen!

Medlem sedan juni 200032 967 inlägg
#7

Hur ser den ut då, när den inte fungerar?

Medlem sedan maj 2003361 inlägg
#8

Oj, en miss från min sida. Den funkade perfekt. Förlåt..
Tack än en gång!!

Här är koden som fungerar!

<html>
<head>

<script language="JavaScript">
<!--
function daniel(ivalue,objid){
if(ivalue=="A" || ivalue=="a"){ document.getElementById(objid).className='A'; }
if(ivalue=="B" || ivalue=="b"){ document.getElementById(objid).className='B'; }
if(ivalue=="C" || ivalue=="c"){ document.getElementById(objid).className='C'; }
}
//-->
</script>

<style type="text/css">
input.A { background-color: #FF0000; }
input.B { background-color: #00FFCC; }
input.C { background-color: #0000FF; }
</style>

</head>
<body>

<form name="the_form">
	<p><input type="text" name="T1" size="20" onchange="daniel(this.value, '1')" ID="1"></p>
</form>

</body>
</html>
Medlem sedan maj 2003361 inlägg
#9

En fråga till!
Jag skulle vilja att markören "auto tabbar" sig vidare efter att man skrivit in en bokstav i en input. Jag hitta ett script men jag lyckas inte få den funka så bra med scriptet ovan. Finns det nån som kan hjälpa mig lite eller ge mig en start?
Jag vill inte använda mig av "NAME" . Däremot går ID eller något annat bra..

<html>
<head>

<script language="JavaScript">
<!--
function autotab(original,destination){
if (original.getAttribute&&original.value.length==original.getAttribute("maxlength"))
destination.focus()
}
//-->
</script>

</head>
<body>

<form name="sampleform">
<input type="text" name="Nr0" size=1 onKeyup="autotab(this, document.sampleform.Nr1)" maxlength=1>
<input type="text" name="Nr1" size=1 onKeyup="autotab(this, document.sampleform.Nr2)" maxlength=1>

</form>

</body>
</html>
264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)