22. februar 2003 - 15:43Der er
15 kommentarer og 1 løsning
radiobutton tjek
Jeg har fundet dette script på eks. Lige nu tjekkes der for om der er checked i kategori 1 og der er fint nok. Men vil gerne ha' at der tjekkes på samme måde for kategori 2. Altså hvis kategori 1 er checked men ikke kategori 2, skal alert sige: Husk kategori 2.... og omvendt. Hvis begge er valgt -> så submit Det skal være en løkke da der kan forekomme fra 0 til mange radiobuttons under hver kategori!!
<html> <head> <script language="JavaScript"> <!-- function validate(f){ var isChecked = false for (i=0;i<f.length;i++){ if (f[i].checked == true) isChecked = true } if(isChecked==false){ alert('Husk at vælge i kategori 1') } return isChecked } // --> </script> <form name=bestil onSubmit="return validate(document.bestil.sp)" > <!--kategori 1--> <input type=radio name=sp1 value="Ja"> <input type=radio name=sp1 value="Nej"> <!--kategori 2--> <input type=radio name=sp2 value="Ja"> <input type=radio name=sp2 value="Nej">
Tja, selvom det script nok ikke vil være min løsning, så kan du ihvertfald opnå det du vil ved lave onsubmitom til: "return validate(document.bestil.sp1) + validate(document.bestil.sp2)" Du har så selvfølgelig samme alert for begge kategorier, men det kan du jo løse på mange måde - evt. ved at lave denne test i javascriptet: if (f == document.bestil.sp1) alert('Husk at vælge i kategori 1'); else alert('Husk at vælge i kategori 2');
-> swootech Kan ikke få det til at virke !! Hvis du gider må du meget gerne vise hvordan du vil lave det, jeg ved ikke meget om javascript ! - causasui
Okay har ny prøvet med noget helt andet, men jeg fatter hvis ikke så meget af det!! Er der ikke nogen der gider at forklare, please... function getRadioValue(knap,knap2) { var isChecked1 = false for (var i=0; knap.length>i; i++){ if (knap[i].checked == true) isChecked1 = true } if(isChecked1==false) { alert('Husk at vælge i kategori 1); return isChecked1 } }
var isChecked2 = false for (var i=0; knap2.length>i; i++){ if (knap2[i].checked == true) isChecked = true } if(isChecked2==false) { alert('Husk at vælge i kategori 1); } return isChecked2 } }
Selvom eksperten lige nu er tavs, ja så holder det håbet oppe ! Så jeg fortsætter med at snakke med mig selv!! Nu virker det, er der så nogen der gider at kommenterer/kritik på det!! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> </head> <body> <html> <head> <script language="JavaScript">
function validate(f,c){ var isChecked1 = false for (i=0;i<f.length;i++){ if (f[i].checked == true) isChecked1 = true } var isChecked2 = false for (i=0;i<c.length;i++){ if (c[i].checked == true) isChecked2 = true } if(isChecked1==false) { alert('Husk at vælge i kategori 1'); } if(isChecked2==false) { alert('Husk at vælge i kategori 2'); } return isChecked
->Morten Ja det er jo rigtig nok, men jeg har to "blokke" jeg skal validerer på. I den ene hedder alle radiobuttons "sp1" og i den anden "sp2" derfor skulle funktionen gerne holde i denne sammenhæng, oder wat??
Næsten - der er et problem med at dy returner inden den kommer til anden del. Prøv det her:
Dit script: function getRadioValue(knap,knap2) { var isChecked = false; for (var i=0; knap.length>i; i++) if (knap[i].checked == true) isChecked = true; if (!isChecked) alert('Husk at vælge i kategori 1'); else { isChecked = false; for (var i=0; knap2.length>i; i++) if (knap2[i].checked == true) isChecked = true; if (!isChecked) alert('Husk at vælge i kategori 2'); } return isChecked; }
Din form: <form name=bestil onSubmit="return getRadioValue(document.bestil.sp1, document.bestil.sp2);">
-> causasui Hvis du lige afprøvede scriptet ville du se at den tager alle buttons der hedder r1 r2 r3 r4, og kontroller om en med det angivne navn er checked.
Hvis du vil have den til at checke din formular, kaldes det med fx <form onsubmit="return CheckRadios(this,'sp')">
Så kontrollerer den for s1, s2, s3, s4 osv om en radiobutton med det aktuelle navn er checked.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.