steffi arnold: Prüfen ob ein Radio Feld markiert ist

Beitrag lesen

Hi Dennis,

der sagt mir immer, dass das Objekt diese Eigenschaft oder Methode nicht unterstützt. Ich habe mal eine abgespeckte Version gebaut:

test.htm
-------------------
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<script type="text/javascript">
<!--
function chkPayment()
{
   var okay = false;
   for(var i = 0; i < document.form_payment.getElementsByName('payment').length; i++)
   {
     if(document.form_payment.getElementsByName('payment')[i].checked == true)
     {
        okay = true;
     }
   }
   if (okay == false)
   {
      alert("Sie haben keine Zahlungsart ausgewählt");
      return false;
   }
   return true;
}

//-->
</script>

<br><br>
<form name="form_payment" action="continue.php" method="post" onSubmit="return chkPayment()">
  <table border="0" width="500">
    <tr>
      <td colspan="2" valign="top" class="main" height="9"><b><font size="4">Schritt
        2: W&auml;hlen Sie eine Zahlart</font></b><br>
        &nbsp;<a href="javascript:chkPayment()"><img src="test.gif" border="0"></a>
      </td>
    </tr>
  </table>
  <br>
  <table width="500" border="0">
    <tr class="moduleRow">
      <td width="32">
        <input type="radio" name="payment" value="banktransfer">
      </td>
      <td class="main" width="921"><b>Lastschriftverfahren</b></td>
    </tr>
    <tr class="moduleRow">
      <td width="32">
        <input type="radio" name="payment" value="cc">
      </td>
      <td class="main" width="891"><b>Kreditkarte (Euro Card, Visa)</b></td>
    </tr>
    <tr class="moduleRow">
      <td width="32">
        <input type="radio" name="payment" value="moneyorder">
      </td>
      <td class="main" width="867"><b>Vorkasse</b></td>
    </tr>
  </table>
  <br>
  <table border="0" width="500">
    <tr>
      <td nowrap>
        <input type="image" src="continue.gif" border="0">
      </td>
    </tr>
  </table>
   </form>
   </body>
</html>
-------------------

Habe oben in der ersten Tabelle mal ein Bild eingefügt und die Funktion testweise aufzurufen und dann kommen auch schon die Fehler.

Vielleicht siehst du da ja was dran.

Liebe Grüße

Steffi

Hi steffi,

Die Funktion wird ausgeführt, sobald der Form abgeschickt wird. Leider wird keine Meldung angezeigt, wenn ich nichts ausgewählt habe.

Die Funktion an sich scheint ok zu sein - ich sehe da keinen (logischen) Fehler drin.

Ich vermute, der Fehler ist beim Abschicken des Formulars zu suchen - wie bindest du die Javascript Funktion denn ein? Etwa so:

<input type="submit" value="Abschicken" onClick="chkPayment()">

Dann dürfte es vermutlich so sein, dass zu dem Zeitpunkt wo chkPayment aufgerufen wird, das Formular schon abgeschickt wird und somit die Meldung gar nicht mehr kommen kann.

Bau es mal so ein:

<input type="submit" value="Abschicken" onClick="return chkPayment()">

Dazu müsstest du die Javascript Funktion noch ein bisschen anpassen:

function chkPayment()

{
  var okay = false;
  for(var i = 0; i < document.formpayment.getElementsByName('payment').length; i++)
  {
    if(document.formpayment.getElementsByName('payment')[i].checked == true)
    {
       okay = true;
    }
  }
  if (okay == false)
  {
    alert("Sie haben keine Zahlungsart ausgewählt");
    return false;
  }
  return true;
}


>   
>   
> MfG, Dennis.  
>   
> PS: Verzichte bitte auf solche "Full-Quotes", also dass du einfach das komplette Posting des Vorgängers noch unten dran stehen hast. Du kannst dich auf einzelne Textstellen beziehen, so wie ich es jetzt auch gemacht habe. Ansonste lösche das Vorposting aus der Textarea einfach ganz raus.