Ändra validering beroende på checkbox

PHPportalen Forum Index » HTML/CSS/JavaScript/Design
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
marcusgarden



Medlem i: 2731 dagar

Status: Offline



#741995
Inlägg Skrivet: 2017-11-20 02:48      Ämne: Ändra validering beroende på checkbox Citera

Jag har ett formulär som skapas med en foreach, varje input upprepas alltså, de får unika namn och id. Varje upprepning är alltså kopplat till ett id i db,m typ

KOD:
1:
<formulär>
2:
foreach row
3:
input id="namn_idfråndb"
4:
input id="efternamn_idfråndb"
5:
input id="adress_idfråndb"
6:
endforeach
7:
</formulär>


detta genererar då t.ex.

KOD:
1:
input id="namn_1"
2:
input id="efternamn_1"
3:
input id="adress_1"
4:
input id="namn_2"
5:
input id="efternamn_2"
6:
input id="adress_2"


till varje varv i foreach så har jag en checkbox som är tänkt kopplas till varje varv i foreach, typ

KOD:
1:
checkbox id="check_1"
2:
checkbox id="check_2"


Jag har sedan en validering som kontrollerar vilka checkboxes som är ikryssade, de som är ikryssade ska då valideras, de som inte är ikryssade ska inte valideras.

KOD:
1:
function validateForm()
2:
      {
3:
         var errors = "";
4:
         <?php
5:
         foreach($varvs as $varv)
6:
         {
7:
         ?>               
8:
            var namn_val = document.forms["WV-form"]["namn_<?php echo $varv->id; ?>"].value;
9:
            var namn_id = document.getElementById("namn_<?php echo $varv->id; ?>");
10:
            
11:
            var efternamn_val = document.forms["WV-form"]["efternamn_<?php echo $varv->id; ?>"].value;
12:
            var efternamn_id = document.getElementById("efternamn_<?php echo $varv->id; ?>");
13:
            
14:
            var adress_val = document.forms["WV-form"]["adress_<?php echo $varv->id; ?>"].value;
15:
            var adress_id = document.getElementById("adress_<?php echo $varv->id; ?>");
16:
            
17:
            
18:
            if (namn_val == ""){namn_id.className += " red";errors += "namn must be filled out for _<?php echo $varv->id; ?>\n";}else{namn_id.className += " green";}
19:
            if (efternamn_val == ""){efternamn_id.className += " red";errors += "efternamn must be filled out for _<?php echo $varv->id; ?>\n";}else{efternamn_id.className += " green";}
20:
            if (adress_val == ""){adress_id.className += " red";errors += "adress must be filled out for _<?php echo $varv->id; ?>\n";}else{adres_id.className += " green";}            
21:
         <?php
22:
         }
23:
         ?>
24:
         var i = errors.length;
25:
         if(i){alert(errors);return false;}
26:
      }


Om vi nu antar att jag klickar i checkbox med id check_1, alltså att varv 1 ska vara med i validering. Men checkbox med id check_2 kryssas inte i, den ska INTE vara med och valideras.

Hur får jag valideringen att endast gälla den eller de varv jag checkar??

Tack på förhand!
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



Medlem i: 4192 dagar
Från: Tavesta
Status: Offline



#741999
Inlägget är accepterad som det rätta svaret Skrivet: 2017-11-21 14:25      Ämne: Citera

Det löses med javascript:
KOD:
1:
if(document.getElementById("check_2").checked) {
2:
  //Här kommer valideringskoden för formulär 2
3:
}


Jag ser att du både använder document.getElementById och document.forms för att komma åt samma element.
Det går lika bra att använda t.ex namn_id.value istället för att behöva ha namn_val också.
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » HTML/CSS/JavaScript/Design
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic