Avatar billede falslev Nybegynder
14. februar 2003 - 11:47 Der er 11 kommentarer og
1 løsning

Kontrol af radiobutton

Jeg har en kode som kontrollerer om en checkbox er krydset af. Men jeg skal have den lavet om så den virker til en radiobutton.
Koden ser således ud:

    if (document.form.KursusDato.checked == "" ){
        errorMsgLong += "\n\- Vælg kursusdato";
        document.form.KursusDato.focus();
    }
Avatar billede riversen Nybegynder
14. februar 2003 - 11:52 #1
if( !document.form.knapgruppe[knapnr].checked )
{
  bla bla
}
Avatar billede falslev Nybegynder
14. februar 2003 - 11:54 #2
Det skal være sådan at hvis ikke en radio i gruppen KursusDato er valgt skal den komme med fejlen.
Avatar billede riversen Nybegynder
14. februar 2003 - 12:00 #3
ok, du retter jo bare til så...

altså
if( !document.formKursusDato[skriv knappens nr her].checked )
{
  //gør hvad du vil
}
Avatar billede falslev Nybegynder
14. februar 2003 - 12:03 #4
Det virker ikke.
KursusDato = ialt 6 knapper med det navn med forsk. værdier.

Ingen af dem er sat til at være checked. Men en skal vælges for at man skal kunne komme videre.
Avatar billede atoft Nybegynder
14. februar 2003 - 12:05 #5
Spørg bare efter formKursusDato.value != ""
Avatar billede cdc Novice
14. februar 2003 - 12:27 #6
check om det er noget af denne du kan bruge:
<html>

<head>
<title></title>
<script language="JavaScript"><!--
function validateValues(what) {
    var valid = true;
       
    var checkBoxes = false;
    var checkboxChecked = false;
       
    var radioButtons = false;
    var radioChecked = false;

    for (var i=0, j=what.elements.length; i<j; i++) {
        myName = what.elements[i].name;
        if (myName.indexOf('radio') > -1) {
            radioButtons = true;
            if (what.elements[i].checked) radioChecked = true;
        }
        if (myName.indexOf('checkbox') > -1) {
            checkBoxes = true;
            if (what.elements[i].checked) checkboxChecked = true;
        }
        if (myName.indexOf('hidden') > -1 || myName.indexOf('password') > -1 || myName.indexOf('text') > -1)
            if (what.elements[i].value == what.elements[i].defaultValue) valid = false;
        if (myName.indexOf('select') > -1)
            if (what.elements[i].selectedIndex == 0) valid = false;
    }

    if ((checkBoxes && !checkboxChecked) || (radioButtons && !radioChecked)) valid = false;

    if (!valid)
        alert('Form not completely filled');

    return valid;
}
//--></script>

<script language="JavaScript1.1"><!--
function validateValues(what) {
    var valid = true;
       
    var checkBoxes = false;
    var checkboxChecked = false;
       
    var radioButtons = false;
    var radioChecked = false;
       
    for (var i=0, j=what.elements.length; i<j; i++) {
        myType = what.elements[i].type;
        if (myType == 'radio') {
            radioButtons = true;
          if (what.elements[i].checked) radioChecked = true;
        }
        if (myType == 'checkbox') {
            checkBoxes = true;
            if (what.elements[i].checked) checkboxChecked = true;
        }
        if (myType == 'hidden' || myType == 'password' || myType == 'text' || myType == 'textarea')
            if (what.elements[i].value == what.elements[i].defaultValue) valid = false;
        if (myType == 'select-one' || myType == 'select-multiple')
            if (what.elements[i].selectedIndex == 0) valid = false;
    }

    if ((checkBoxes && !checkboxChecked) || (radioButtons && !radioChecked)) valid = false;

    if (!valid)
        alert('Form not completely filled');

    return valid;
}
//--></script>
</head>

<body>


<form name="myForm" onSubmit="return validateValues(document.myForm)">
<br><input name="checkbox1" type="checkbox"><input name="checkbox2" type="checkbox">
<br><input name="hidden" type="hidden" value="hidden value">
<br><input name="password" type="password" value="password value">
<br><input name="radio" type="radio"><input name="radio" type="radio">
<br><input name="text" type="text" value="text value">
<br><textarea name="textarea">textarea value</textarea>
<br><select name="select1">
<option selected>Select One:
<option>1
<option>2
<option>3
</select>
<br><select name="select2" multipe size="2">
<option selected>Select One:
<option>1
<option>2
<option>3
</select>
<br><input type="submit">
</form>

</body>

</html>
Avatar billede falslev Nybegynder
14. februar 2003 - 13:36 #7
Kan ikke få nogle af de ellers gode forslag til at virke
Avatar billede atoft Nybegynder
14. februar 2003 - 13:40 #8
prøv lige med
document.form.KursusDato.value == null
Avatar billede atoft Nybegynder
14. februar 2003 - 13:44 #9
Brug denne funktion istedet

function getSelectedRadioBox(radioCollection) {
    for (i=0; i < radioCollection.length; i++) {
        if (radioCollection[i].checked) {
            return radioCollection[i].value;
        }
    }
    return null;
}

kan den sådan her

getSelectedRadioBox(document.form.KursusDato);
Avatar billede falslev Nybegynder
14. februar 2003 - 14:28 #10
Kan ikke få det til at virke det mindste :(
Avatar billede cdc Novice
14. februar 2003 - 14:48 #11
hvad med at smide din side op på nettet så man kan se
Avatar billede falslev Nybegynder
24. juni 2004 - 09:29 #12
Fandet løsningen her:


if (document.form.radiobuttonname[0].checked==false && document.form.radiobuttonname[1].checked==false){
    errorMsgLong += "\n\ - Vælg";
}
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