webForumDet fria alternativet

Värde i en textbox automatiskt till tio andra

JavaScript

15 svar · 620 visningar · startad av Pedda

Medlem sedan juni 20006 031 inlägg
Frågan#1

Jag vill ha en textbox och när man skriver något i den så ska alla andra textboxar som heter antal[] fyllas i automatiskt med värdet i den andra textboxen.
Alternativt att man har en länk bredvid textboxen och om man klickar på den så förs värdet in i dom övriga textboxarna.

Men frågan är hur man löser det?

Medlem sedan jan. 2005713 inlägg
#2

Såhär då:


<form name="blaha">
	<input name="Text1" onKeyUp="alla()" type="text" /><br />
	<input name="Text2" type="text" /><br />
	<input name="Text3" type="text" /><br />
	<input name="Text4" type="text" /><br />
	<input name="Text5" type="text" /><br />
	<input name="Text6" type="text" /><br />
	<input name="Text7" type="text" /><br />
	<input name="Text8" type="text" />
	
	</form>

<script type="text/javascript">

function alla() {

	for(i=2;i<9;i++)
 		{ document.forms["blaha"].elements["Text"+i].value=document.blaha.Text1.value }

}

</script>

Inte så snyggt.. men det funkar, dock ingen knapp men det är ju bara att sätta dit en som anropar funktionen itsället.

i<9 ska man kunna ändra om till form.length.. men hur, kommer inte ihåg.

Medlem sedan jan. 2005713 inlägg
#3

for(i=2;i<document.forms["blaha"].elements.length+1;i++)

så var det.

Medlem sedan juni 20006 031 inlägg
#4

Alla textboxar som ska fyllas automatiskt heter antal[] och det kan vara olika antal många.
Det finns även andra textboxar som heter annat som inte ska fyllas i automatiskt.

Medlem sedan juni 20006 031 inlägg
#5

Exempel på hur det kan se ut:

<tr>
    <td>&nbsp;</td>
    <td><input name="sammaIalla" type="text" id="sammaIalla" size="10" onKeyUp="CopyText()" /> 
      styck i alla pallar </td>
</tr>
<tr>
    <td>Pall 1:</td>
    <td><input name="antalPerPall[]" type="text" id="antalPerPall[]" size="10" /> 
      styck </td>
</tr>
<tr>
    <td>Pall 2:</td>
    <td><input name="antalPerPall[]" type="text" id="antalPerPall[]" size="10" /> 
      styck </td>
</tr>
<tr>
    <td>Pall 3:</td>
    <td><input name="antalPerPall[]" type="text" id="antalPerPall[]" size="10" /> 
      styck </td>
</tr>

... osv med andra textboxar, radiobuttons mm ...
Medlem sedan jan. 2005713 inlägg
#6

Tyvärr kan man inte ha [] med i namnet på text boxarna..

red\ och inte samma namn på flera text boxar heller för den delen.

Medlem sedan juni 20006 031 inlägg
#7

Jasså, är det bara checkboxar och sånt som man kan det?

Medlem sedan jan. 2005713 inlägg
#8

Det går nog inte med någon slags form element just eftersom det skapar problem när man ska och om man vill anropa dessa med javascript. och som jag redigera ovan så kan man inte ha samma namn på flera heller.. alla fall inte text fälten.

Medlem sedan juni 20006 031 inlägg
#9

Att ha samma namn och [] använder jag ofta på t.ex checkboxar och det funkar fint, men jag har aldrig använt det på textboxar eller ihop med javascript.

Medlem sedan jan. 2005713 inlägg
#10

Exakt vad måste du ha [] tecknen till?

Medlem sedan jan. 2005713 inlägg
#11

Radio knappar kan man ha samma namn på eftersom det bildar grupper.

Medlem sedan juni 20006 031 inlägg
#12

Testade nu att fylla i värden i textboxarna, skicka formuläret och sen loopa ut värden och det funkade.

Medlem sedan juni 20006 031 inlägg
#13

stattin skrev:

Exakt vad måste du ha [] tecknen till?

Eftersom textboxarna skapas dynamiskt så jag inte vet hur många det är från gång till gång så behöver jag värdena i en array när formuläret postats.

Medlem sedan feb. 20041 816 inlägg
#14

Snabbt fulhack:

<script type="text/javascript">
function updateValues(sourceElement, targetElementName) {
	
	var targetElements = sourceElement.form.elements[targetElementName];
	
	for (var i=0; i<targetElements.length; i++) {
		targetElements[i].value = sourceElement.value;
	}
}
</script>

<form>
	<input type="text" name="master" onkeyup="updateValues(this, 'antal[]')">
	
	<input type="text" name="antal[]">
	<input type="text" name="antal[]">
	<input type="text" name="antal[]">
	<input type="text" name="antal[]">
	<input type="text" name="antal[]">
</form>

Pedda,

du får inte ha flera id med samma värde. Skript kan och kommer knasa sig och så är det inte tillåtet enligt spec. Varje id måste vara unikt för sidan.

Medlem sedan juni 20006 031 inlägg
#15

dAEk skrev:

Snabbt fulhack:

Det funkar iaf. tack.

dAEk skrev:

du får inte ha flera id med samma värde. Skript kan och kommer knasa sig och så är det inte tillåtet enligt spec. Varje id måste vara unikt för sidan.

Har inte hittat någon dokumentation som har sagt att man inte får ha samma värde på flera id.
Jag lär väl återkomma om det knasar sig men det funkar nu iaf.

Medlem sedan feb. 20041 816 inlägg
#16

Pedda skrev:

Har inte hittat någon dokumentation som har sagt att man inte får ha samma värde på flera id.

Element identifiers, id:
"This attribute assigns a name to an element. This name must be unique in a document."

Annars kan du testa och validera htmlkoden. Det är ett bra sätt att upptäcka fel men också att lära sig html bättre om man är intresserad.

Pedda skrev:

Jag lär väl återkomma om det knasar sig men det funkar nu iaf.

Vänta bara... ;) §e

264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)