Avatar billede nordclc Nybegynder
26. juni 2013 - 13:44 Der er 4 kommentarer og
1 løsning

Valider at der er trykke i en celle

Hej Eksperter,

hvordan kan jeg i nedenstående kode tjekke at der er valgt et felt når der trykkes submit (i funktionen valider ved ???)?

Mvh
Claus

------------

<html>
<head>

<SCRIPT type="text/javascript">

function toggle(object, IDvalue) {
  if ( object.style.backgroundColor == '' || object.style.backgroundColor == undefined ){
    object.style.backgroundColor = 'green';
    object.childNodes[0].value = IDvalue;
  } else {
    object.style.backgroundColor = '';
    object.childNodes[0].value = '';
  }
}

function valider()  {
  fejl = 0;

  if(???)
  {
    alert("Der er ikke valgt nogle felter!");
    fejl = 1;
  }

  if(fejl == 0)
    document.test.submit();
}


</script>

</head>
<body>
<form method="POST" name="test" action="testclc_post.asp">
<table border='1'>
<tr>
  <td onclick = " toggle(this, 'felt1'); " ><input type="hidden" name="felt" > </td>
  <td onclick = " toggle(this, 'felt2'); " ><input type="hidden" name="felt" > </td>
  <td onclick = " toggle(this, 'felt3'); " ><input type="hidden" name="felt" > </td>
</tr>
<tr>
  <td colspan="3"><input type="button" value="Submit" onclick="valider();"></td>
</tr>
</table>
</form>
</body>
</html>
Avatar billede Slettet bruger
26. juni 2013 - 19:29 #1
Den type funktionalitet er det MEGET lettere at lave med "rigtige" felter
- type="radio" (vælg én blandt mange)
- type="checkbox" (vælg en eller flere blandt mange)

Men når nu du VIL ha' det såden (det er overraskende bøvlet)
<!DOCTYPE HTML>
<html><head><meta http-equiv=Content-Type content="text/html;charset=utf-8">
<script type="text/javascript">

function toggle(knap,IDvalue)
    {
    if (document.formNavn.feltNavn.value == "")
        {
        knap.style.backgroundColor = "green"
        document.formNavn.feltNavn.value = IDvalue
        }
    else
        if (document.formNavn.feltNavn.value == IDvalue)
            {
            knap.style.backgroundColor = "transparent"
            document.formNavn.feltNavn.value = ""
            }
        else
            if (document.formNavn.feltNavn.value.indexOf(IDvalue) == -1)
                {
                knap.style.backgroundColor = "green"
                document.formNavn.feltNavn.value += ","+IDvalue
                }
            else
                {
                knap.style.backgroundColor = "transparent"

                var alle = document.formNavn.feltNavn.value.split(",")
       
                for (var i=0; i<alle.length; i++)
                    if (alle[i] == IDvalue)
                        {
                        alle.splice(i,1)
                        break
                        }

                document.formNavn.feltNavn.value = alle.join(",")
                }
    }

function valider()
    {
    if (document.formNavn.feltNavn.value == "")
        alert("Der er ikke valgt nogle felter!");
    else
        {
        alert("submitter: "+document.formNavn.feltNavn.value)
//        document.test.submit()
        }
    }


</script></head><body>

<form method="POST" name="formNavn" action="testclc_post.asp">
<input type="text" name="feltNavn" value="">

<table border='1'>
    <tr>
        <td onclick="toggle(this,'felt1')" height=20 width=30></td>
        <td onclick="toggle(this,'felt2')" height=20 width=30></td>
        <td onclick="toggle(this,'felt3')" height=20 width=30></td>
    </tr>
    <tr>
        <td colspan="3"><input type="button" value="Submit" onclick="valider();"></td>
    </tr>
</table>

</form>

</body></html>

Feltet er synligt - erstat type="text" med type="hidden"
og den submitter ikke, men alerter i stedet - fjern alert() og //
Avatar billede nordclc Nybegynder
26. juni 2013 - 20:49 #2
Perfekt T4NK32, tusind tak for svaret. Jeg er helt håbløs til JavaScript, men du gav mig ideen til en mindre omskrivning. Læg et svar og dine points er på vej.

Mvh
Claus

---------------------------------------------------

For god ordens skyld er her hvad jeg endte op med:

<html>
<head>

<SCRIPT type="text/javascript">

function toggle(object, IDvalue) {
  if ( object.style.backgroundColor == '' || object.style.backgroundColor == undefined ){
    object.style.backgroundColor = 'green';
    object.childNodes[0].value = IDvalue;
    document.test.taller.value = parseInt(document.test.taller.value) + 1;
  } else {
    object.style.backgroundColor = '';
    object.childNodes[0].value = '';
    document.test.taller.value = parseInt(document.test.taller.value) - 1;
  }
}

function valider()
  {
    fejl = 0;

    alert(document.test.taller.value);
    if(document.test.taller.value == 0)
        {
            alert("Der er ikke valgt nogle felter!");
            fejl = 1;
        }

        if(fejl == 0)
            document.test.submit();
    }
</script>
</head>

<body>
<form method="POST" name="test" action="testclc_post.asp">
<input type="hidden" name="taller" value="0">
<table border='1'>
<tr>
  <td onclick = " toggle(this, 'felt1'); " ><input type="hidden" name="felt" > </td>
  <td onclick = " toggle(this, 'felt2'); " ><input type="hidden" name="felt" > </td>
  <td onclick = " toggle(this, 'felt3'); " ><input type="hidden" name="felt" > </td>
</tr>
<tr>
  <td colspan="3"><input type="button" value="Submit" onclick="valider();"></td>
</tr>
</table>
</form>
</body>
</html>
Avatar billede Slettet bruger
27. juni 2013 - 07:57 #3
Kommer her.

Men jeg forstår ikke hvorfor du ikke bruger min kode i stedet : )
- du har tre felter med samme name - kan ASP skelne imellem dem på serveren ?
Avatar billede nordclc Nybegynder
27. juni 2013 - 08:30 #4
De har samme navn, for så kan jeg på min post side løbe igennem sådan her:

For each tmpValue in request.form("felt")
  ' Her får jeg så værdierne felt1, felt2 og felt3
  If tmpValue <> "" then
    ....
    ....
  End If
Next
Avatar billede Slettet bruger
27. juni 2013 - 08:51 #5
OK
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