Toon posts:

[JAVASCRIPT] Check checkboxes met de zelfde naam

Pagina: 1
Acties:

Verwijderd

Topicstarter
Vraagje,
het volgende doet zich voor, ik heb een html form met daarin onder andere twee checkboxes en een hidden Field allemaal drie met de name p_denyResp zoals in de html code hieronder:

code:
1
2
3
4
5
6
<input type="hidden" name="p_denyResp" value="1">
<input type="checkbox" class="checkbox" value="50505" name="p_denyResp" checked STYLE="color: #777777; font-family: verdana; font-size: 8pt;">
resp 1
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" class="checkbox" value="50506" name="p_denyResp"
resp 2


Dit moeten checkboxes zijn, dus ik kan het niet veranderen naar een radio button. Als een checkbox checked is dan word de waarde meegestuurd naar de volgende pagina waar hij in een array opgenomen zal worden. Om er voor te zorgen dat de array nooit leeg is is er het hidden field met de waarde 1. Echter, nu dient er een popup te komen als alle twee de checkboxes niet gechecked zijn. Hoe krijg ik dit voor elkaar? Met een enkele checkbox met een unieke naam is dit geen enkel probleem om dit te checken en zou ik een code zoals hier beneden staat gebruiken:


code:
1
2
3
4
5
var is_checked = window.document.new_user.p_denyResp.checked;
if (is_checked == false)
  {
   alert("You selected all responsibilties to be denied.");
  }


Echter ik heb dus twee checkboxes en een hidden field met allemaal de zelfde naam, hoe ga je om met een dergelijke situatie?

Verwijderd

Dat gaat gewoon nooit goed, waarom maak je de namen niet uniek??

Verwijderd

Topicstarter
Verwijderd schreef op vrijdag 30 juni 2006 @ 13:59:
Dat gaat gewoon nooit goed, waarom maak je de namen niet uniek??
De namen moeten het zelfde zijn aangezien ze in een en de zelfde array opgevangen moeten worden door de pl/sql code die de volgende pagina zal maken. Ik zat zelf te denken aan een soort van count van het aantal keren dat de checkbox=checked true is. Heeft iemand daar enige ervaring mee?

  • Tsjilp
  • Registratie: November 2002
  • Niet online

Tsjilp

RS[I]ds

loop met JS door form.elements, vraag het type op, indien het een checkbox is, vraag zijn waarde op. Ik meen me te herinneren dat een niet geselecteerde checkbox niet in form.elements voorkomt (maar dat weet ik niet zeker), in dat geval kun je het gemakkelijk controleren door de kijken of het type checkbox in form.elements voorkomt.

Raar... Is zo gek nog niet


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Tsjilp schreef op vrijdag 30 juni 2006 @ 14:03:
loop met JS door form.elements, vraag het type op, indien het een checkbox is, vraag zijn waarde op. Ik meen me te herinneren dat een niet geselecteerde checkbox niet in form.elements voorkomt (maar dat weet ik niet zeker), in dat geval kun je het gemakkelijk controleren door de kijken of het type checkbox in form.elements voorkomt.
Ze worden niet meegestuurd met een post, maar ze komen wel degelijk voor in de collectie :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • remcotolsma
  • Registratie: December 2005
  • Laatst online: 09-10-2025
Je zou toch ook elke input een unieke id kunnen geven? En dan kun je met getElementById de input elementen eenvoudig benaderen.

HTML:
1
2
3
<input type="hidden" name="p_denyResp" value="1">
<input id="input_1" type="checkbox" name="p_denyResp" value="50505" checked="checked">
<input id="input_2" type="checkbox" name="p_denyResp" value="50506">


JavaScript:
1
2
if(!document.getElementById('input_1').checked && !document.getElementById('input_2').checked)
  alert('Alle twee de checkboxes zijn niet gechecked');

[ Voor 20% gewijzigd door remcotolsma op 30-06-2006 14:10 ]


  • Tsjilp
  • Registratie: November 2002
  • Niet online

Tsjilp

RS[I]ds

Of, als je aan 1 naam wilt vasthouden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<html>
<head>
    <script type="text/javascript">
        function jsfnc(who) {
            var check = false
            for(var i=0; i< who.elements.length; i++) {
                if(who.elements[i].type=="checkbox" && who.elements[i].checked == true) {
                    check = true;
                    i = who.elements.length;
                }
                
            }
            if(check) {
                alert("er is minimaal 1 checkbox gechecked");
                //er is minimaal 1 checkbox gechecked
            } else {
                alert("er geen checkbox gechecked");
            }
        }
    </script>
</head>
<body>
    <form id="formpje" onsubmit="return jsfnc(this);">
        <input id="Checkbox1" type="checkbox" />
        <input id="Checkbox2" type="checkbox" />
        <input id="Checkbox3" type="checkbox" />
        <input type="submit" value="submit" />
    </form>
</body>
</html>

Raar... Is zo gek nog niet


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:42

crisp

Devver

Pixelated

of:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var checkbox = form.elements['p_denyResp'];
var checkbox_checked = false;
if (checkbox.length)
{
  var i = checkbox.length;
  while (i--)
  {
    if (checkbox[i].checked)
    {
      checkbox_checked = true;
      break;
    }
  }
}
else
{
  checkbox_checked = checkbox.checked;
}

// doe iets adhv checkbox_checked

:)

[ Voor 4% gewijzigd door crisp op 30-06-2006 15:24 ]

Intentionally left blank


Verwijderd

Topicstarter
remcotolsma schreef op vrijdag 30 juni 2006 @ 14:10:
Je zou toch ook elke input een unieke id kunnen geven? En dan kun je met getElementById de input elementen eenvoudig benaderen.

HTML:
1
2
3
<input type="hidden" name="p_denyResp" value="1">
<input id="input_1" type="checkbox" name="p_denyResp" value="50505" checked="checked">
<input id="input_2" type="checkbox" name="p_denyResp" value="50506">


JavaScript:
1
2
if(!document.getElementById('input_1').checked && !document.getElementById('input_2').checked)
  alert('Alle twee de checkboxes zijn niet gechecked');
Toch maar gekozen voor deze oplossing en hij werkt perfect moet ik zeggen.

Thanks guys voor de input... Probleem opgelost ;-)
Pagina: 1