Avatar billede sbarnney Nybegynder
29. december 2000 - 11:44 Der er 18 kommentarer og
1 løsning

Validering af dropdown box.

Jeg har en dropdown som flg.

<form name=\"betal\" method=\"POST\" action=\"gem_ny_data.asp\">
<table>
    <tr>
        <td>Betaling:</td>
        <td><select name=\"bet_type\">
            <option value=\"2\">Bankoverførelse</option>
            <option value=\"1\">Check</option></td>
    </tr>
</table>
</form>

Denne skal valideres efter om den er sat til 1 eller 2.
IF 1 THEN .... Else. Hvordan gøres dette ??
Avatar billede Slettet bruger
29. december 2000 - 11:56 #1
IF ($bet_type == 2)
THEN
{
Bla bla bla
}
ELSE
{
bla bla bla
}

Dette ville virke i PHP, men jeg er ikke nogen haj til JavaScript, såe.. men ideen er god nok!
:-)
Avatar billede olebole Juniormester
29. december 2000 - 12:13 #2
<ole>
if (document.betal.net_type.options[document.betal.net_type.selectedIndex].value == 1) {
  Et_eller_andet.................
} else {
  Noget_helt_andet................
}

/mvh
</bole>
Avatar billede erikjacobsen Ekspert
29. december 2000 - 12:15 #3
<form name=\"betal\" method=\"POST\" action=\"gem_ny_data.asp\" onsubmit=\"return validate(document.betal)\">

og så en function

function validate(f) {
var v=f.bet_type.options[f.bet_type.selectedIndex].value;
if (v!=1 && v!=2) {
  alert(\"vælg 1 elller 2\");
  return false;
}
return true;
}
Avatar billede erikjacobsen Ekspert
29. december 2000 - 12:15 #4
øv, OleBole - holder du ferie??
Avatar billede olebole Juniormester
29. december 2000 - 12:15 #5
...\'bet_type\' og ikke \'net_type\'  :)))
Avatar billede olebole Juniormester
29. december 2000 - 12:17 #6
Næhhhh, så havde jeg jo ikke tid til at gå dig i bedene...jeg er skam da på arbejdet :)))
Godt Nytår :))
Avatar billede erikjacobsen Ekspert
29. december 2000 - 12:28 #7
I lige måde, Ole. Hmm, jeg kan se mit svar ikke helt er det,
der bliver spurgt om - men det er da vist noget i den retning
der skal til ...
Avatar billede olebole Juniormester
29. december 2000 - 12:37 #8
Det skal du ikke være ked af, Erik ...jeg HAR jo svaret  *LOL*
Avatar billede sbarnney Nybegynder
29. december 2000 - 13:12 #9
Her er siden.

<html>
<head>
    <title>TEST</title>
<SCRIPT language=\"JavaScript\">

if (document.betal.bet_type.options[document.betal.bet_type.selectedIndex].value == 1) {
  alert (\'test 1\');
} else {
  alert (\'test 2\');
}

</SCRIPT>
</head>
<body>
<form name=\"betal\" method=\"POST\" action=\"gem_ny_data.asp\">
<table border=\"0\">
    <tr>
        <td>
            Type:
        </td>
        <td>
            <select name=\"bet_type\">
            <option value=\"2\">Option1</option>
            <option value=\"1\">Option2</option>
        </td>
        <td>
            <input type=\"submit\" value=\"Opret\">
        </td>
        <td></td>
    </tr>
</table>
</form>
</body>
</html>

Her er fejlen.

Linie: 5
Fejl: \'document.betal.bet_type\' er null elle ikke et objekt ??????
Avatar billede olebole Juniormester
29. december 2000 - 13:18 #10
function check() {
if (document.betal.bet_type.options[document.betal.bet_type.selectedIndex].value == 1) {
  alert (\'test 1\');
} else {
  alert (\'test 2\');
}
}

..så kan du f.eks. kalde funktionen fra et link på onclick=\"check();\"
Avatar billede olebole Juniormester
29. december 2000 - 13:19 #11
...eller du kan kalde således:

<select name=\"bet_type\" onchange=\"check();\">
Avatar billede olebole Juniormester
29. december 2000 - 13:22 #12
Grunden til dit script ikke virker, er at browseren oppe i script\'et prøver at forholde sig til en form, der endnu ikke er skrevet ud på siden :)
Nu er handlingen \'kapslet\' inde i en funktion, der først bliver fyret af, når formen er indlæst.
Avatar billede sbarnney Nybegynder
29. december 2000 - 13:51 #13
Siden var en test side, den rigtige side virker det ikke på. For at gøre en lang histiorie kort, får du hele siden her.

<html>
<head>
    <title></title>
    <link rel=\"STYLESHEET\" type=\"text/css\" href=\"styles.css\">
<SCRIPT language=\"JavaScript\">

// funktion der kontroller formen og sender videre til naeste side.
function kontroller(){
  if (checkForm()){
    document.secureform.submit()
  }
}

// -----------  Her er funktionen fra dig olebole ------------------

// funktion der kontroller select boxen.
function check() {
if (document.betal.bet_type.options[document.betal.bet_type.selectedIndex].value == 1) {
   
    function checkForm(){
        ok = true;
        if (!(check_tom(document.secureform.modt_navn.value))){
            ok = false;
            alert(\'Du har ikke udfyldt feltet Navn !\');
        }
        if (!(check_tom(document.secureform.modt_regnr.value))){
            ok = false;
            alert(\'Du har ikke udfyldt feltet Reg. nr. !\');
        }
    return ok;
} else

// -------------------------------------------------------------------

// funktion der checker om et felt er tomt, til brug i checkForm()
function check_tom(text) {
  return (text.length > 0);
}

</SCRIPT>

</head>
<%
Dim width, width2, border
width = 100
width2 = 150
border = 1
%>
<body>
<p><h3>check / bankoverførsel</h3></p>
<form name=\"secureform\" method=\"POST\" action=\"gem_ny_data.asp\" onclick=\"check();\" onSubmit=\"java script:kontroller()\">
<table border=\"<%= border%>\">
    <tr align=\"right\" width=\"<%= width2 %>\">
        <td width=\"<%= width %>\">nr. :</td><td><input type=\"text\" name=\"modt_dlgknr\"></td>
        <td width=\"<%= width %>\">Navn :</td><td><input type=\"text\" name=\"modt_navn\"></td>
        <td width=\"<%= width %>\">Dkr :</td><td><input type=\"text\" name=\"beloeb\" value=\",00\"></td>
    </tr>
</table>
<table border=\"<%= border%>\">
    <tr align=\"right\" width=\"<%= width2 %>\">
        <td width=\"<%= width %>\">Betalings Type :</td><td><select name=\"bet_type\">
                                                          <option value=\"2\">Bankoverførelse</option>
                                                          <option value=\"1\">Check</option>
        </td>
        <td width=\"<%= width %>\"></td>
        <td>Note :</td><td><input type=\"text\" name=\"bem_finans\" style=\"width: 405px;\"></td>
    </tr>
</table>
<hr>
<p><i><b><font size=\"+0,5\">Bankoverførelse :</font></b></i></p>
<table border=\"<%= border%>\">
    <tr align=\"right\" width=\"<%= width2 %>\">
        <td width=\"<%= width %>\">Bank Navn :</td><td><input type=\"text\" name=\"modt_banknavn\"></td>
        <td width=\"<%= width %>\">Reg. Nr. :</td><td><input type=\"text\" name=\"modt_regnr\"></td>
        <td width=\"<%= width %>\">Konto Nr. :</td><td><input type=\"text\" name=\"modt_kto\"></td>
        <td></td><td></td>
    </tr>
</table>
<hr>
<p><i><b><font size=\"+0,5\">Check :</font></b></i></p>
<table border=\"<%= border%>\">
    <tr align=\"right\" width=\"<%= width2 %>\">
        <td width=\"<%= width %>\">Adrresse 1 :</td><td><input type=\"text\" name=\"modt_adr1\"></td>
        <td width=\"<%= width %>\">Adresse 2 :</td><td><input type=\"text\" name=\"modt_adr2\"></td>
        <td width=\"<%= width %>\">Adresse 3 :</td><td><input type=\"text\" name=\"modt_adr3\"></td>
    </tr>
</table>
<hr>
<table>
    <tr>
        <td>
<p>        <input type=\"submit\" value=\"Opret\" name=\"B1\" style=\"width: 100px;\">
        </form></p>
        </td>
        <td>
<p>        <form>
        <input type=\"button\" value=\"Tilbage\" style=\"width: 100px;\" onClick=\"history.back();\">
        </form></p>
        </td>
    </tr>
</table>
</body>
</html>


Hvis du kan hjælpe med at rette fejlen, dobler jeg op på point.
Avatar billede olebole Juniormester
31. december 2000 - 17:04 #14
Prøv dette i stedet:

<SCRIPT language=\"JavaScript\">

function checkForm(){
    if (document.secureform.bet_type.options[document.secureform.bet_type.selectedIndex].value == 1) {
        if (document.secureform.modt_navn.value.length <= 0){
            alert(\'Du har ikke udfyldt feltet Navn !\');
            document.secureform.modt_navn.focus();
            return false;
        } else if (document.secureform.modt_regnr.value.length <= 0){
            alert(\'Du har ikke udfyldt feltet Reg. nr. !\');
            document.secureform.modt_regnr.focus();
            return false;
        } else {
            return true;
        }
    } else {
        return true;
    }
}

</SCRIPT>

Så skal du kalde således:

<form name=\"secureform\" method=\"POST\" action=\"gem_ny_data.asp\" onSubmit=\"return checkForm();\">

...og glemme de andre funktioner. HUSK iøvrigt at afslutte din <select> med en </select> efter dine <option></option>\'s

/mvh og godt Nytår

Avatar billede olebole Juniormester
31. december 2000 - 17:08 #15
...eller lidt mere \'sexy\' i anledning af nytåret:

<SCRIPT language=\"JavaScript\">

function checkForm(which){
    if (which.bet_type.options[which.bet_type.selectedIndex].value == 1) {
        if (which.modt_navn.value.length <= 0){
            alert(\'Du har ikke udfyldt feltet Navn !\');
            which.modt_navn.focus();
            return false;
        } else if (which.modt_regnr.value.length <= 0){
            alert(\'Du har ikke udfyldt feltet Reg. nr. !\');
            which.modt_regnr.focus();
            return false;
        } else {
            return true;
        }
    } else {
        return true;
    }
}

</SCRIPT>

...og så:

<form name=\"secureform\" method=\"POST\" action=\"gem_ny_data.asp\" onSubmit=\"return checkForm(this);\">
Avatar billede sbarnney Nybegynder
02. januar 2001 - 07:43 #16
Hej Ole, og godt nytår.
Jeg kan ikke få nogle af de 2¨til at virke korekt. Efter første validering (value 1) validere den stadig på modt_regnr, som den ellers skulle hoppe over. Siden kan ses på http://212.10.34.90/bettype/ny_data.asp

<html>
<head>
    <title></title>
    <link rel=\"STYLESHEET\" type=\"text/css\" href=\"styles.css\">
<SCRIPT language=\"JavaScript\">

function checkForm(){
    if (document.secureform.bet_type.options[document.secureform.bet_type.selectedIndex].value == 1) {
        if (document.secureform.modt_navn.value.length <= 0){
            alert(\'Du har ikke udfyldt feltet Navn !\');
            document.secureform.modt_navn.focus();
            return false;
        } else if (document.secureform.modt_regnr.value.length <= 0){
            alert(\'Du har ikke udfyldt feltet Reg. nr. !\');
            document.secureform.modt_regnr.focus();
            return false;
        } else {
            return true;
        }
    } else {
        return true;
    }
}

</SCRIPT>
</head>
<body>
<form name=\"secureform\" method=\"post\" action=\"gem_ny_data.asp\" onSubmit=\"return checkForm();\">
<table>
    <tr><td>Navn :</td><td><input type=\"text\" name=\"modt_navn\"></td></tr>

    <tr><td>Betalings Type :</td><td><select name=\"bet_type\">
                                    <option value=\"1\">Bankoverførelse</option>
                                    <option value=\"2\">Check</option></select></td></tr>

    <tr><td>Reg. Nr. :</td><td><input type=\"text\" name=\"modt_regnr\"></td></tr>
</table>
<input type=\"submit\" value=\"Opret\" name=\"B1\" style=\"width: 100px;\"></form>
</body>
</html>
Avatar billede sbarnney Nybegynder
02. januar 2001 - 08:21 #17
Så er alt OK, det var en lille detalje fra min side der fejlede. mange tak for hjælpen.
Avatar billede sbarnney Nybegynder
02. januar 2001 - 08:23 #18
Hej Ole, hvorledes kan jeg give dig flere point end først sat ???
Avatar billede olebole Juniormester
02. januar 2001 - 09:33 #19
Det er fint nok med de 100 points....jeg er helt tilfreds :)
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