Avatar billede 44fire44 Nybegynder
25. september 2008 - 21:32 Der er 13 kommentarer og
1 løsning

Koble input-felt sammen med en flok radio-buttons

Hej eksperter

Jeg er igang med at lave en side, hvor man skal indtaste et antal ind i en text-boks - dette antal skal så stemmes over ens når siden sendes, således at en valgt radiobutton bliver valideret

Det kunne fx være ved valg af et lokale

Rum 1: 20-80 personer
Rum 2: 130-200 personer
Rum 3: 300-800 personer
Rum 4: 150-400 personer

osv osv

HVIS der så indtastes et tal som ikke stemmer overens med det antal som der er plads til i det valgte lokale (fx. 18 personer, eller 100 personer) skal brugeren få en alert boks med en tekst som kunne lyde "Dit indtastede antal deltagere stemmer ikke overens med det valgte lokale"

Hvordan laver jeg dette nemmest?
Avatar billede olebole Juniormester
25. september 2008 - 21:38 #1
<ole>

Hvorfor skal brugeren ikke bare trykke på en radiobutton? Der er vel ingen grund til at gøre en simpel ting mere kompliceret  =)

/mvh
</bole>
Avatar billede 44fire44 Nybegynder
25. september 2008 - 21:46 #2
Jamen det er vi bare blevet enige om ;) - så nu skal jeg bare sørge for at der ikke sker nogle misforståelser på den måde jeg ovenfor har beskrevet
Avatar billede 44fire44 Nybegynder
25. september 2008 - 21:48 #3
men mht. til brugen er det også vigtigt at vide det eksakte antal, fremfor en "range" - fx 80-100
Avatar billede olebole Juniormester
25. september 2008 - 22:53 #4
Jeg tror ikke rigtig, du har tænkt scenariet igennem, men du kan rode videre med det her:

<script type="text/javascript">
var oChosenRoom = null;
function checkChosen(oForm) {
    var nVal = oForm.numPeople.value*1;
    if (nVal=="") return false;
    if (typeof nVal!="number") {
        alert("Du skal skrive et tal");
        oForm.numPeople.select();
        return false;
    }
    var aRadio = oForm.roomChoise;
    var aRange = null;
    for (var i=0,j=aRadio.length; i<j; i++) {
        if (aRadio[i].checked) {
            aRange = aRadio[i].value.split("-");
            break;
        }
    }
    if (!aRange) return false;
    if (nVal<aRange[0] || nVal>aRange[1]) {
        alert("Du skal vælge et rum, der passer til antallet af personer");
        return false;
    }
}
</script>

<form action="">
<div id="choiseBox" style="width:180px">
    <div><input type="radio" name="roomChoise" value="20-80" id="20_80"><label for="20_80">Rum 1: 20-80 personer</label></div>
    <div><input type="radio" name="roomChoise" value="130-200" id="130_200"><label for="130_200">Rum 2: 130-200 personer</label></div>
    <div><input type="radio" name="roomChoise" value="300-800" id="300_800"><label for="300_800">Rum 3: 300-800 personer</label></div>
    <div><input type="radio" name="roomChoise" value="150-400" id="150_400"><label for="150_400">Rum 4: 150-400 personer</label></div>
</div>
<input type="text" name="numPeople" onblur="checkChosen(this.form)">
</form>

- men, hvornår skal der tjekkes på hvad - og hvornår skal der ikke. Det har du ikke specificeret  =)
Avatar billede 44fire44 Nybegynder
26. september 2008 - 01:19 #5
jeg havde tænkt mig at der skulle tjekkes på onSubmit. Hvis den er onBlur bliver valget bare stående i radio-boksen selvom man får en advarsel
Avatar billede 44fire44 Nybegynder
26. september 2008 - 22:43 #6
hvordan kan det være, at når jeg ændrer onBlur til OnSubmit og smider den op i min form-kode, så validerer den ikke?

<form method="post" action="" onSubmit="checkChosen(this.form)">
<div id="choiseBox" style="width:180px">
    <div><input type="radio" name="roomChoise" value="20-80" id="20_80"><label for="20_80">Rum 1: 20-80 personer</label></div>
    <div><input type="radio" name="roomChoise" value="130-200" id="130_200"><label for="130_200">Rum 2: 130-200 personer</label></div>
    <div><input type="radio" name="roomChoise" value="300-800" id="300_800"><label for="300_800">Rum 3: 300-800 personer</label></div>
    <div><input type="radio" name="roomChoise" value="150-400" id="150_400"><label for="150_400">Rum 4: 150-400 personer</label></div>
</div>
<input type="text" name="numPeople">
<input type="submit" name="submit" value="submit">
</form>
Avatar billede olebole Juniormester
26. september 2008 - 22:47 #7
onsubmit="return checkChosen(this)"  ;o)
Avatar billede 44fire44 Nybegynder
27. september 2008 - 04:32 #8
jamen det var præcis det jeg ledte efter :) - smid et svar

en lille bi-ting - Er der nogen mulighed for at undgå at alle indtastningerne i formen bliver slettet efter man har trykket "OK" på advarslen?
Avatar billede olebole Juniormester
27. september 2008 - 13:46 #9
Ehhh ... sker det da?  =)
Avatar billede 44fire44 Nybegynder
27. september 2008 - 15:25 #10
http://get-ready.dk/test.php - tjek selv :) - nåt man trykker "submit" så slettes alle indtastninger da siden genindlæses - er det muligt at undgå?
Avatar billede olebole Juniormester
27. september 2008 - 15:30 #11
Ja - skriv, hvad jeg skrev til dig i (26/09-2008 22:47:42)  ;o)
Avatar billede olebole Juniormester
27. september 2008 - 15:30 #12
*pssssssst* ... 'return'  =)
Avatar billede 44fire44 Nybegynder
27. september 2008 - 18:23 #13
damn pinligt... *sigh* well ja det virkede selvfølgelig :D - du får dine venfortjente points

tusinde tak for hjælpen
Avatar billede olebole Juniormester
27. september 2008 - 18:27 #14
Selvtak - og tak for points  ;D
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester