Mudknot6: 2 Werte in einem Eingabefeld überprüfen

Hallo Leute.

Ich habe mir folgenden Quelltext kopiert. Es handelt sich hierbei um 2 Eingabefelder. Im ersten soll kontrolliert werden, ob ein Text eingegeben wurde und im 2., ob es sich bei der Eingabe um eine Zahl handelt. Ich würde aber gerne das ganze in einem Eingabefeld überprüfen. Weiß vielleicht irgendjemand wie ich das in diesem Beispiel am besten machen könnte?? Bitte um Hilfe!!!

Hier der Quellcode:

<head>
<script type="text/JavaScript">
//<!--
var var_1 = new Array()
var_1[0] = new Array('bier','e','Sie haben keine Biermarke angegeben','');
var_1[1] = new Array('zahl','n','ist keine Zahl','');

var msg_1 = 'Fehler:';

function validate(sender,myarray,err_hd){

var err_msg = !err_hd?new Array('Folgende Fehler sind aufgetreten:\n'):new Array(err_hd+'\n');
var error = false;

for (i=0;i<myarray.length;i++){
  field = document.forms[sender.name].elements[myarray[i][0]];

/* Block 1 überprüft Felder, die ausgefüllt sein müssen */
  if (myarray[i][1].indexOf('e')>-1){
    if (!field.value){
      error = true;
      err_msg.push(myarray[i][2]);
    }
  }

/* Block 3 überprüft Felder, deren Wert eine Zahl sein muss */
  else if (myarray[i][1].indexOf('n')>-1) {
    var num_error = false;
    if(field.value) {
      var myvalue = field.value;
      var num = myvalue.match(/[^0-9,.]/gi)
      var dot = myvalue.match(/./g);
      var com = myvalue.match(/,/g);
        if (num!=null) {
          num_error = true;
        }
        else if ((dot!=null)&&(dot.length>1)) {
          num_error = true;
        }
        else if ((com!=null)&&(com.length>1)) {
          num_error = true;
        }
        else if ((com!=null)&&(dot!=null)) {
          num_error = true;
        }
    }
    if (num_error==true) {
        error = true;
        err_msg.push(myvalue+" "+myarray[i][2]);
    }
  }

}

/* im Fehlerfall werden hier die gesammelten Fehlermeldungen verarbeitet und angezeigt. Wenn das
Formular ohne Beanstandung ist, wird es übertragen */
  if (error) {
    err_msg = err_msg.join('\n\xB7 ');
    alert(err_msg);
    return false;
  }
  else {
    return true;
  }
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#AA5522" vlink="#772200" alink="#000000">
<h2 class="Sh2">Beispiel</h2>

<form name="testform1" id="testform" onSubmit="return validate(this,var_1)">
  <table border="0" cellspacing="0" cellpadding="2">
    <tr>
    <td><input name="bier" id="bier" type="text"></td>
    <td>Biermarke (muss ausgefüllt sein)</td>
    </tr>
    <tr>
    <td><input name="zahl" id="zahl" type="text" value="08-fuffzehn"></td>
    <td>Zahl (muss eine Zahl sein)</td>
    <td colspan="2"><input type="button" name="button" id="button" value="testen" onclick="return validate(this.form,var_1,msg_1)" ></td>
    </tr>
  </table>
</form>
</body>

  1. Ich würde aber gerne das ganze in einem Eingabefeld überprüfen.

    was meinst du damit?
    du möchtest in ein textfeld sowohl ne biermarke als auch eine zahl eingeben udn dann den inhalt dieses feldes parsen?

    Gruß

    Phil

    --
    ich bin ein nachmacher: http://www.eppstein.de
    1. Uuuuupsii, die Biermarke war schon im Beispiel. Sorry!! Also ich möchte in einem Textfeld kontrollieren, ob eine Zahl eingegeben wurde und ob es sich wirklich um eine Zahl handelt.

      Liebe Grüße, Mudy

      1. Also um ein Feld auf Inhalt und Konsistenz zu prüfen reicht in diesem fall:

        if(document.forms[0].elements["zahl"].value.length != 0) {
           if(isFinite(document.forms[0].elements["zahl"].value) {
              return(true);
           }
           else {
              alert("Es handelt sich nicht um eine Zahl!");
              return(false);
           }
        }
        else {
           alert("Feld wurde leer gelassen.\nBitte eine Zahl eingeben!");
           return(false);
        }

        Gruß

        Phil

        --
        ich bin ein nachmacher: http://www.eppstein.de
        1. if(isFinite(document.forms[0].elements["zahl"].value) {

          da fehl ne klammer:
          if(isFinite(document.forms[0].elements["zahl"].value)) {

          return(true);

          sorry ;-)
          Gruß

          Phil

          --
          ich bin ein nachmacher: http://www.eppstein.de
          1. Danke Phil!!!

            Ich würd es awa gerne mittels meinem Beispiel schaffen. Brauch es so für die Schule. Wenn mir bitte wer helfen könnte?!?

            Grüsse, Mudy

            1. fällt das andere feld komplett weg?

              Gruß

              Phil

              --
              ich bin ein nachmacher: http://www.eppstein.de
              1. Jaaa, das andere Feld sollte komplett weg sein, sodass ich nurmehr ein Eingabefeld habe und in diesem sollte dann die Kontrolle ("Feld leer" oder "Zahl eingeben") durchgeführt werden.

                Mfg, Mudy

                1. <head>
                  <script type="text/JavaScript">
                  //<!--
                  var var_1 = new Array()
                  var_1[0] = new Array('zahl','n','ist keine Zahl','');

                  var msg_1 = 'Fehler:';

                  function validate(sender,myarray,err_hd){

                  var err_msg = !err_hd?new Array('Folgende Fehler sind aufgetreten:\n'):new Array(err_hd+'\n');
                  var error = false;

                  for (i=0;i<myarray.length;i++){
                    field = document.forms[sender.name].elements[myarray[i][0]];

                  /* Block 1 überprüft Felder, die ausgefüllt sein müssen */
                    if (myarray[i][1].indexOf('e')>-1){
                      if (!field.value){
                        error = true;
                        err_msg.push(myarray[i][2]);
                      }
                    }

                  /* Block 3 überprüft Felder, deren Wert eine Zahl sein muss */
                    else if (myarray[i][1].indexOf('n')>-1) {
                      var num_error = false;
                      if(field.value) {
                        var myvalue = field.value;
                        var num = myvalue.match(/[^0-9,.]/gi)
                        var dot = myvalue.match(/./g);
                        var com = myvalue.match(/,/g);
                          if (num!=null) {
                            num_error = true;
                          }
                          else if ((dot!=null)&&(dot.length>1)) {
                            num_error = true;
                          }
                          else if ((com!=null)&&(com.length>1)) {
                            num_error = true;
                          }
                          else if ((com!=null)&&(dot!=null)) {
                            num_error = true;
                          }
                      }
                      if (num_error==true) {
                          error = true;
                          err_msg.push(myvalue+" "+myarray[i][2]);
                      }
                    }

                  }

                  /* im Fehlerfall werden hier die gesammelten Fehlermeldungen verarbeitet und angezeigt. Wenn das
                  Formular ohne Beanstandung ist, wird es übertragen */
                    if (error) {
                      err_msg = err_msg.join('\n\xB7 ');
                      alert(err_msg);
                      return false;
                    }
                    else {
                      return true;
                    }
                  }
                  //-->
                  </script>
                  </head>
                  <body bgcolor="#FFFFFF" text="#000000" link="#AA5522" vlink="#772200" alink="#000000">
                  <h2 class="Sh2">Beispiel</h2>

                  <form name="testform1" id="testform" onSubmit="return validate(this,var_1)">
                    <table border="0" cellspacing="0" cellpadding="2">

                  <tr>
                        <td><input name="zahl" id="zahl2" type="text" value="08-fuffzehn"></td>
                        <td>Zahl (muss eine Zahl sein)</td>
                        <td colspan="2"><input type="button" name="button" id="button" value="testen" onClick="return validate(this.form,var_1,msg_1)" ></td>
                      </tr>
                    </table>
                  </form>
                  </body>

                  feddich

                  Gruß

                  Phil

                  --
                  ich bin ein nachmacher: http://www.eppstein.de
                  1. Wow!!! DANKE VIELMALS Phil!! Hast mir wahnsinnig weitergeholfen!! Vielen lieben Dank nochmals.

                    Ganz liebe Grüsse, Mudy

                    1. Nichts zu danken,

                      das nächste mal Hausaufgaben selber machen :Þ

                      waren eine zeile löschen + 2 abändern ;-)

                      Gruß

                      Phil

                      --
                      ich bin ein nachmacher: http://www.eppstein.de
        2. if(isFinite(document.forms[0].elements["zahl"].value) {

          da fehlt ne klammer: if(isFinite(document.forms[0].elements["zahl"].value)) {

          return(true);

          sorry ;-)

          Phil

          --
          ich bin ein nachmacher: http://www.eppstein.de
  2. Ich würd es awa gerne mittels meinem Beispiel schaffen. Brauch es so für die Schule. Wenn mir bitte wer helfen könnte?!?