Avatar billede meyer Nybegynder
17. september 2000 - 12:17 Der er 15 kommentarer og
1 løsning

ALERT!!

Hvordan laver jeg en alert på denne hvis man taster bogstaver i stedet for tal ind i feltet????

<input name=\"Antal\" size=\"5\" type=\"text\" onchange=\"submit()\">
Avatar billede erikjacobsen Ekspert
17. september 2000 - 12:20 #1
I samme øjeblik, som man taster et \"ikke-ciffer\" ?
Avatar billede meyer Nybegynder
17. september 2000 - 12:21 #2
Hej erik >> ja, det ville være det bedste ellers når den jo at submitte og så går det galt *G*
Avatar billede phylox2 Nybegynder
17. september 2000 - 12:57 #3
<html>
<head>
<script language=\"javascript\">
<!--

function validate(f) {
var lovlige = \"0123456789\";
for (i=0; i<f.talfelt.value.length; i++){
    if (lovlige.indexOf(f.talfelt.value.charAt(i)) < 0) {
        alert(\"Navnet kan kun best345 af tal\");
        f.talfelt.focus();               
        return false;
    }else{
        f.submit();
    }
}
}

//-->
</script>
</head>

<body>
<form name=ff>
<input type=text name=talfelt>
<input type=button onclick=\"validate(document.ff)\">
</form>

Det kan du måske bruge til noget :)


Avatar billede meyer Nybegynder
17. september 2000 - 13:41 #4
Jeg kan ikke få den til at virke i mit script :-)

Jeg genererer en liste fra min database:

<form action=\"gem.asp\" name=\"f\">
varenavn pris <input name=\"Antal\" size=\"5\" type=\"text\" onchange=\"submit()\">
</form>

<form action=\"gem.asp\" name=\"f\">
varenavn pris <input name=\"Antal\" size=\"5\" type=\"text\" onchange=\"submit()\">
</form>

osv. til den har vist de varer den skal - og det er i alle de forms den skal tjekke for tal.

Meyer
Avatar billede erikjacobsen Ekspert
17. september 2000 - 15:30 #5
\"Try this on for size\":

<html>
<head>
<title>Indtast brugernavn og password</TITLE>
<SCRIPT LANGUAGE=\"JavaScript1.2\">
<!--
  ns4 = (document.layers)? true:false;
  ie4 = (document.all)? true:false;
  function kp(e) {
    if (ns4) {if (e.which==13 || e.which==9) { /*ok*/ }
              else if (e.which<\'0\' || e.which>\'9\') {alert(\'DUMMERNIK\');}
            }
    if (ie4) {e=window.event; if (e.keyCode==13 || e.keyCode==9) { /*ok*/ }
              else if (e.keyCode<48 || e.keyCode>57) {alert(\'DUMMERNIK\');
      e.cancelBubble=true;e.keyCode=0;}
      }
  }
  function init() {
    document.f.navn.onkeypress=kp;
  }
//-->
</script>
</head>
<body onload=\"init();\">

<form action=\'whatever\' METHOD=\'post\' NAME=\'f\'>
<input TYPE=\'text\' NAME=\'navn\' SIZE=\'10\'>
</body>
</html>
?
Avatar billede erikjacobsen Ekspert
17. september 2000 - 15:32 #6
Oops. Linien
  else if (e.which<\'0\' || e.which>\'9\') {alert(\'DUMMERNIK\');}
skal være                   
  else if (e.which<48 || e.which>57) {alert(\'DUMMERNIK\');}
for ellers giver det dumpekarakter i Netscape-programmering

Avatar billede meyer Nybegynder
17. september 2000 - 15:53 #7
erik >> Den er perfekt - altså når jeg kører det script du har lavet, men når jeg indsætter den i mit eget...nada...så sker der intet - fatter ikke hvad jeg laver forkert. :-(

Meyer
Avatar billede erikjacobsen Ekspert
17. september 2000 - 15:58 #8
Må vi se? Der er mange ting du skal huske. Den der onload, navne på felter, etc etc
Avatar billede meyer Nybegynder
17. september 2000 - 16:06 #9
Ja, ved det - har fået det til at køre i et andet - men ikke i det der er vigtigst *G*
Avatar billede meyer Nybegynder
17. september 2000 - 16:10 #10
Tror det er fordi der er mange forms på siden der så hedder det samme :-(

Kan det løses ??
Avatar billede erikjacobsen Ekspert
17. september 2000 - 18:32 #11
Næh, antallet er ligegyldigt, og de hedder vel ikke det samme, for så kan
du da - groft sagt - ikke bruge dem til noget særligt? Mere hjælp kræver mere
info, f.eks. kildetekst ;-)
Avatar billede meyer Nybegynder
17. september 2000 - 18:59 #12
Hej Erik.

Det er et shoppingsystem i ASP hvor hver eneste vare  bliver listet i en form med købsknap og et felt hvor man skal skrive antal. Når man så trykker køb bliver varen gemt i databasen med det samme og man kan klikke på flere varer dernedad - til den løsning jeg laver nu skal der IKKE være en købsknap og jeg har så valgt at lave det sådan at man skriver sit antal og så submitter den på den måde. Men derfor er alle mine formfelter ens og vil jo så også have samme navn. Dvs. der er 2 forms - hver anden linie er med farveskift.

Jeg ville jo godt kunne lave en I = 1 osv. og ændre mine formnavne - men hvordan kan javascriptet så chekke alle mine forms ??

Meyer
Avatar billede erikjacobsen Ekspert
17. september 2000 - 19:47 #13
Hvis du ved dine forme hedder f1, f2, f3 kan du f.eks.

  for  (i=1;i<=3;i++) {
    eval(\'document.f\'+i+\'.navn.onkeypress=kp;\');
  }

for nu at udvide mit eksempel. Så bliver der genereret og udført:

  document.f1.navn.onkeypress=kp;
  document.f2.navn.onkeypress=kp;
  document.f3.navn.onkeypress=kp;

og 3 tallet kan også være en javascript-variabel, som du sætter i bunden din html-fil:

  <script>
    antal=3;
  </script>
  </body>
  </html>

hvor du kender det samlede antal forme.

Avatar billede meyer Nybegynder
17. september 2000 - 20:23 #14
Skal den sættes ind sådan her??

<SCRIPT LANGUAGE=\"JavaScript1.2\">
<!--
  ns4 = (document.layers)? true:false;
  ie4 = (document.all)? true:false;
  function kp(e) {
    if (ns4) {if (e.which==13 || e.which==9) { /*ok*/ }
              else if (e.which<48 || e.which>57) {alert(\'Skriv KUN tal\');}

            }
    if (ie4) {e=window.event; if (e.keyCode==13 || e.keyCode==9) { /*ok*/ }
              else if (e.keyCode<48 || e.keyCode>57) {alert(\'Skriv KUN tal\');
      e.cancelBubble=true;e.keyCode=0;}
      }
  }
  function init()
    for  (i=1;i<=antallet;i++) {
    eval(\'document.f\'+i+\'.Antal.onkeypress=kp;\');
  }


//-->
</script>
----------------

<script>
    antallet=<%=X%>;
  </script>
----------------------------

Mine forms hedder i hvert fald f1, f2, f3 osv. nu - men den virker ikke - er uden at lyve ikke skide god til javascript *GG*

Gider du rette den til for mig ??

Meyer
Avatar billede erikjacobsen Ekspert
17. september 2000 - 20:47 #15
Du mangler blot nogle krølleparanteser i init-funktionen.

<html>
<head>
<title> New Document </title>
<SCRIPT LANGUAGE=\"JavaScript1.2\">
                      <!--
                        ns4 = (document.layers)? true:false;
                        ie4 = (document.all)? true:false;
function kp(e) {
  if (ns4) {if (e.which==13 || e.which==9) { /*ok*/ }
            else if (e.which<48 || e.which>57) {alert(\'Skriv KUN tal\');}
          }
  if (ie4) {e=window.event; if (e.keyCode==13 || e.keyCode==9) { /*ok*/ }
            else if (e.keyCode<48 || e.keyCode>57) {alert(\'Skriv KUN tal\');
            e.cancelBubble=true;e.keyCode=0;}
              }
}
function init() {
  for  (i=1;i<=antallet;i++) {
    eval(\'document.f\'+i+\'.Antal.onkeypress=kp;\');
  }
}
//-->
</script>
</head>

<body bgcolor=\"#FFFFFF\" onload=\"init();\">

<form name=\"f1\">
<input type=\"text\" name=\"Antal\">
</form>

<form name=\"f2\">
<input type=\"text\" name=\"Antal\">
</form>

<form name=\"f3\">
<input type=\"text\" name=\"Antal\">
</form>

                      <script>
                          antallet=3;
                        </script>
</body>
</html>
Avatar billede meyer Nybegynder
17. september 2000 - 21:05 #16
Så var den der - tusind tak skal du ha\' *S*
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