---
title: "sätta villkor för checkboxar i tabell"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/147631-sätta-villkor-för-checkboxar-i-tabell"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "devotion"
published: "2006-06-01T22:13:48.000Z"
updated: "2006-09-19T21:37:52.000Z"
replies: 8
views: 564
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/147631-sätta-villkor-för-checkboxar-i-tabell"
---

# sätta villkor för checkboxar i tabell

## #1 — devotion, 2006-06-01T22:13Z

Hej!

Jag har en tabell i ett formulär som ser ut som bifogad bild.

Koden ser ut så här (genereras av ett asp-script): 

```
	<Form action="addArticleToCart.asp" method="post" >

	<input type="hidden" name="searchValue" id="searchValue" value="EKLK 3G1,5 T500" />
	<input type="hidden" name="searchType" id="searchType" value=""  />
		<table>
			<caption>S&ouml;kresultat</caption>
				<thead>
					<tr>
						<th>Leverant&ouml;r</th>

						<th>E-nummer</th>
						<th>Pris</th>
						<th>Avtalspris</th>
						<th>% h&ouml;gre</th>
						<th>Rabatt</th>
						<th>Kategori</th>

						<th>V&auml;lj</th>
					</tr>
				</thead>
				<tbody>
				
					<tr onMouseOver="this.style.backgroundColor='#D3DEF8';" onMouseOut="this.style.backgroundColor='';" bgcolor=#FFFFFF>
						<td>Storel<input type="hidden" name="supplier" id="supplier" value="Storel" /></td>
						<td>0423005</td>

						<td>39,50 kr</td>
						<td>5,25 kr</td>
						<td>0,0%</td>
						<td>86,7%</td>
						<td>EKK, EKLK, EKRK</td>
						<td><input name="defaultArticle" id="defaultArticle" type="checkbox" value="2|0423005" /></td>

					</tr>
					
					<tr onMouseOver="this.style.backgroundColor='#D3DEF8';" onMouseOut="this.style.backgroundColor='';" bgcolor=#EFEFEF>
						<td>Solar<input type="hidden" name="supplier" id="supplier" value="Solar" /></td>
						<td>0423405</td>
						<td>36,00 kr</td>
						<td>5,44 kr</td>
						<td>3,5%</td>

						<td>84,9%</td>
						<td>INST.LEDNING NEXANS</td>
						<td><input name="defaultArticle" id="defaultArticle" type="checkbox" value="1|0423405" /></td>
					</tr>
					
					<tr onMouseOver="this.style.backgroundColor='#D3DEF8';" onMouseOut="this.style.backgroundColor='';" bgcolor=#FFFFFF>
						<td>Elektroskandia<input type="hidden" name="supplier" id="supplier" value="Elektroskandia" /></td>
						<td>0423005</td>

						<td>20,10 kr</td>
						<td>5,63 kr</td>
						<td>7,1%</td>
						<td>72%</td>
						<td>EKLK DRAKA</td>
						<td><input name="defaultArticle" id="defaultArticle" type="checkbox" value="3|0423005" /></td>

					</tr>
					
					<tr onMouseOver="this.style.backgroundColor='#D3DEF8';" onMouseOut="this.style.backgroundColor='';" bgcolor=#EFEFEF>
						<td>Ahlsell<input type="hidden" name="supplier" id="supplier" value="Ahlsell" /></td>
						<td>0423405</td>
						<td>55,50 kr</td>
						<td>7,22 kr</td>
						<td>37,3%</td>

						<td>87%</td>
						<td>LED,FK,MK,EKK,EKRK,EKLK,INK HF</td>
						<td><input name="defaultArticle" id="defaultArticle" type="checkbox" value="4|0423405" /></td>
					</tr>
					
					<tr onMouseOver="this.style.backgroundColor='#D3DEF8';" onMouseOut="this.style.backgroundColor='';" bgcolor=#FFFFFF>
						<td>Selga<input type="hidden" name="supplier" id="supplier" value="Selga" /></td>
						<td>0423005</td>

						<td>45,50 kr</td>
						<td>7,28 kr</td>
						<td>38,6%</td>
						<td>84%</td>
						<td>Installationskablar PVC,över 1,5mm2 Draka</td>
						<td><input name="defaultArticle" id="defaultArticle" type="checkbox" value="5|0423005" /></td>

					</tr>
					
					<tr onMouseOver="this.style.backgroundColor='#D3DEF8';" onMouseOut="this.style.backgroundColor='';" bgcolor=#EFEFEF>
						<td>Selga<input type="hidden" name="supplier" id="supplier" value="Selga" /></td>
						<td>0423205</td>
						<td>45,50 kr</td>
						<td>7,28 kr</td>
						<td>38,6%</td>

						<td>84%</td>
						<td>Installationskablar PVC, 1,5mm2 Ericsson</td>
						<td><input name="defaultArticle" id="defaultArticle" type="checkbox" value="5|0423205" /></td>
					</tr>
					
					<tr onMouseOver="this.style.backgroundColor='#D3DEF8';" onMouseOut="this.style.backgroundColor='';" bgcolor=#FFFFFF>
						<td>Ahlsell<input type="hidden" name="supplier" id="supplier" value="Ahlsell" /></td>
						<td>0423005</td>

						<td>116,00 kr</td>
						<td>15,08 kr</td>
						<td>187,0%</td>
						<td>87%</td>
						<td>LED,FK,MK,EKK,EKRK,EKLK,INK HF</td>
						<td><input name="defaultArticle" id="defaultArticle" type="checkbox" value="4|0423005" /></td>

					</tr>
					
					<tr onMouseOver="this.style.backgroundColor='#D3DEF8';" onMouseOut="this.style.backgroundColor='';" bgcolor=#EFEFEF>
						<td>Selga<input type="hidden" name="supplier" id="supplier" value="Selga" /></td>
						<td>0423405</td>
						<td>45,50 kr</td>
						<td>45,50 kr</td>
						<td>766,1%</td>

						<td>0%</td>
						<td>Installationskablar PVC, 1,5mm2 Nexans</td>
						<td><input name="defaultArticle" id="defaultArticle" type="checkbox" value="5|0423405" /></td>
					</tr>
					
				</tbody>
		</table>
		<p>
		<label>Antal<input type="text" name="articleAmount" /></label>

		</p>
		<p>
		<input name="add" type="submit" value="L&auml;gg till" />
		</p>
	</Form>
```

Kan man göra så att det bara går att kryssa i en checkbox från varje leverantör. Finns samma leverantör med 2 gånger ska det bara gå att kryssa i den ena checkboxen.. Försöker man kryssa en till ska det stå typ: Ajabaja, det där var inte tillåtet...

Man kanske måste lägga till en räknare för att kunna särskilja de olikaleverantörerna eller något..

Mvh
Henrik

Bilagor:

- [checkboxar.jpg](https://www.webforum.nu/a/10959.jpg)

Permalänk: https://www.webforum.nu/p/147631

## #2 — prey, 2006-06-09T21:25Z

Idé:

\<form ... onsubmit="return validate()"\>

```
function validate(){
  var supplier = new Array();
  var inputs = document.getElementsByTagName('input');
  for(var i = 0; i < inputs.size; i++){
    if(inputs[i].type == 'checkbox'){
      var sup_id = inputs[i].value;
      if(supplier[sup_id] == undefined || supplier[sup_id] == null){
        supplier[sup_id] = true;
      } else {
        alert("ajabaja!");
        return false;
      }
    }
  }
}
return true;
```

Ovanstående förutsätter att value för varje checkbox är ett ID för en leverantör. Skriptet är ej testkört, men det borde (nästan iaf) fungera.

Edit: Hrm.. läste frågan lite slarvigt.. Min varnar inte förrän man fyllt i hela grejen, men vad du kan göra är helt enkelt att lägga onclick="validate()" på alla checkboxar så borde det fungera även då.

Permalänk: https://www.webforum.nu/p/1828062

## #3 — devotion, 2006-06-14T18:54Z

Oki, är på resande fot för tillfället...

Ska titta vidare på det när jag kommer hem i början av juli....

Mvh
Henrik

Permalänk: https://www.webforum.nu/p/1829378

## #4 — Peter S, 2006-09-19T20:09Z

```
<script type="text/javascript">
function cbValidate(cb)
{
  if (!cb.checked) return;

  var elms = cb.form.elements[cb.name];
  if (elms){
    for (var i = 0; i < elms.length; ++i){
      if (elms[i] != cb && parseInt(cb.value.charAt(0)) == parseInt(elms[i].value.charAt(0)) && elms[i].checked){        
        cb.checked = false;
        alert("Ajabaja! V.g. avmarkera redan valt alternativ");
        break;
      }
    }
  }
}
</script>

	<Form action="addArticleToCart.asp" method="post" >

	<input type="hidden" name="searchValue" id="searchValue" value="EKLK 3G1,5 T500" />
	<input type="hidden" name="searchType" id="searchType" value=""  />
		<table>
			<caption>S&ouml;kresultat</caption>
				<thead>
					<tr>
						<th>Leverant&ouml;r</th>

						<th>E-nummer</th>
						<th>Pris</th>
						<th>Avtalspris</th>
						<th>% h&ouml;gre</th>
						<th>Rabatt</th>
						<th>Kategori</th>

						<th>V&auml;lj</th>
					</tr>
				</thead>
				<tbody>
				
					<tr onMouseOver="this.style.backgroundColor='#D3DEF8';" onMouseOut="this.style.backgroundColor='';" bgcolor=#FFFFFF>
						<td>Storel<input type="hidden" name="supplier" id="supplier" value="Storel" /></td>
						<td>0423005</td>

						<td>39,50 kr</td>
						<td>5,25 kr</td>
						<td>0,0%</td>
						<td>86,7%</td>
						<td>EKK, EKLK, EKRK</td>
						<td><input onclick="cbValidate(this)" name="defaultArticle" id="defaultArticle" type="checkbox" value="2|0423005" /></td>

					</tr>
					
					<tr onMouseOver="this.style.backgroundColor='#D3DEF8';" onMouseOut="this.style.backgroundColor='';" bgcolor=#EFEFEF>
						<td>Solar<input type="hidden" name="supplier" id="supplier" value="Solar" /></td>
						<td>0423405</td>
						<td>36,00 kr</td>
						<td>5,44 kr</td>
						<td>3,5%</td>

						<td>84,9%</td>
						<td>INST.LEDNING NEXANS</td>
						<td><input onclick="cbValidate(this)" name="defaultArticle" id="defaultArticle" type="checkbox" value="1|0423405" /></td>
					</tr>
					
					<tr onMouseOver="this.style.backgroundColor='#D3DEF8';" onMouseOut="this.style.backgroundColor='';" bgcolor=#FFFFFF>
						<td>Elektroskandia<input type="hidden" name="supplier" id="supplier" value="Elektroskandia" /></td>
						<td>0423005</td>

						<td>20,10 kr</td>
						<td>5,63 kr</td>
						<td>7,1%</td>
						<td>72%</td>
						<td>EKLK DRAKA</td>
						<td><input onclick="cbValidate(this)" name="defaultArticle" id="defaultArticle" type="checkbox" value="3|0423005" /></td>

					</tr>
					
					<tr onMouseOver="this.style.backgroundColor='#D3DEF8';" onMouseOut="this.style.backgroundColor='';" bgcolor=#EFEFEF>
						<td>Ahlsell<input type="hidden" name="supplier" id="supplier" value="Ahlsell" /></td>
						<td>0423405</td>
						<td>55,50 kr</td>
						<td>7,22 kr</td>
						<td>37,3%</td>

						<td>87%</td>
						<td>LED,FK,MK,EKK,EKRK,EKLK,INK HF</td>
						<td><input onclick="cbValidate(this)" name="defaultArticle" id="defaultArticle" type="checkbox" value="4|0423405" /></td>
					</tr>
					
					<tr onMouseOver="this.style.backgroundColor='#D3DEF8';" onMouseOut="this.style.backgroundColor='';" bgcolor=#FFFFFF>
						<td>Selga<input type="hidden" name="supplier" id="supplier" value="Selga" /></td>
						<td>0423005</td>

						<td>45,50 kr</td>
						<td>7,28 kr</td>
						<td>38,6%</td>
						<td>84%</td>
						<td>Installationskablar PVC,över 1,5mm2 Draka</td>
						<td><input onclick="cbValidate(this)" name="defaultArticle" id="defaultArticle" type="checkbox" value="5|0423005" /></td>

					</tr>
					
					<tr onMouseOver="this.style.backgroundColor='#D3DEF8';" onMouseOut="this.style.backgroundColor='';" bgcolor=#EFEFEF>
						<td>Selga<input type="hidden" name="supplier" id="supplier" value="Selga" /></td>
						<td>0423205</td>
						<td>45,50 kr</td>
						<td>7,28 kr</td>
						<td>38,6%</td>

						<td>84%</td>
						<td>Installationskablar PVC, 1,5mm2 Ericsson</td>
						<td><input onclick="cbValidate(this)" name="defaultArticle" id="defaultArticle" type="checkbox" value="5|0423205" /></td>
					</tr>
					
					<tr onMouseOver="this.style.backgroundColor='#D3DEF8';" onMouseOut="this.style.backgroundColor='';" bgcolor=#FFFFFF>
						<td>Ahlsell<input type="hidden" name="supplier" id="supplier" value="Ahlsell" /></td>
						<td>0423005</td>

						<td>116,00 kr</td>
						<td>15,08 kr</td>
						<td>187,0%</td>
						<td>87%</td>
						<td>LED,FK,MK,EKK,EKRK,EKLK,INK HF</td>
						<td><input onclick="cbValidate(this)" name="defaultArticle" id="defaultArticle" type="checkbox" value="4|0423005" /></td>

					</tr>
					
					<tr onMouseOver="this.style.backgroundColor='#D3DEF8';" onMouseOut="this.style.backgroundColor='';" bgcolor=#EFEFEF>
						<td>Selga<input type="hidden" name="supplier" id="supplier" value="Selga" /></td>
						<td>0423405</td>
						<td>45,50 kr</td>
						<td>45,50 kr</td>
						<td>766,1%</td>

						<td>0%</td>
						<td>Installationskablar PVC, 1,5mm2 Nexans</td>
						<td><input onclick="cbValidate(this)" name="defaultArticle" id="defaultArticle" type="checkbox" value="5|0423405" /></td>
					</tr>
					
				</tbody>
		</table>
		<p>
		<label>Antal<input type="text" name="articleAmount" /></label>

		</p>
		<p>
		<input name="add" type="submit" value="L&auml;gg till" />
		</p>
	</Form>
```

 :)

Permalänk: https://www.webforum.nu/p/1869769

## #5 — devotion, 2006-09-19T20:11Z

Fantastiskt!

Tackar Peter S

..och välkommen tillbaka till wf.. ;)

Permalänk: https://www.webforum.nu/p/1869770

## #6 — Peter S, 2006-09-19T20:15Z

:f

Permalänk: https://www.webforum.nu/p/1869774

## #7 — devotion, 2006-09-19T21:16Z

hmmm... :(  

Det fungerade inte så bra... Det gick att markera flera checkboxar från samma leverantör...

Mvh
Henrik

Permalänk: https://www.webforum.nu/p/1869812

## #8 — Peter S, 2006-09-19T21:19Z

Med ovanstående kod? Det lyckas jag ej med. Beskriv klicksekvenserna.

 :)

Permalänk: https://www.webforum.nu/p/1869813

## #9 — devotion, 2006-09-19T21:37Z

Hej igen   :r  

Glömde sätta onclick i input.... sorry... Nu funkar det finfint!

Mvh
Henrik

Permalänk: https://www.webforum.nu/p/1869817

---

Tråden på webben: https://www.webforum.nu/amne/javascript/147631-sätta-villkor-för-checkboxar-i-tabell
