Sorgenkind mech: "das objekt unterstützt diese eigenschaft oder methode nicht"

nabend

ich hab schonwieder n dicken hals weil ich nich rausbekomme woran es liegt

folgendes problem:
eine seite wird per php generiert
aufbau:
<allgemeine einstellungen>

<kopftext>
-table-
<positionsnummer>|<beschreibung>|..|<button entfernen (name=entfxxx) onclick=delpos(positionsnummer)>
-/table-

soweit so gut, von den zeilen da gibbet natürlich mehrere und die xxx beim buttonnamen ist die jeweilige positionsnummer

letztendlich hat dieser button die aufgabe diese eine tabellenzeile zu löschen

wie man sieht wird eine js-funktion aufgerufen, und dabei kommt die fehlermeldung

im folgenden mal ein beispielcode, der generiert wurde (der fehler tritt immer auf, auch egal welchen entfernen-button ich nutze):

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language=javascript>

function dazua()
{
 document.getElementById('action').value="addart";
 document.getElementById('rsatztyp').value="a";
 document.getElementById('addmenge').value = window.prompt("Menge:","1");
 if(document.getElementById('addart').value!="")
 {
  if(document.getElementById('addmenge').value!="")
  {
  document.forms["dok"].submit();
  }
 }
 else alert("Keine Artikelnummer eingegeben!");
}

function dazuk()
{
 document.getElementById('action').value="addart";
 document.getElementById('rsatztyp').value="k";
 document.getElementById('addmenge').value = window.prompt("Menge:","1");
 if(document.getElementById('addart').value!="")
 {
  if(document.getElementById('addmenge').value!="")
  {
  document.forms["dok"].submit();
  }
 }
 else alert("Keine Artikelnummer eingegeben!");
}

function fuertext()
{
if(document.forms["dok"].anrede.value=="Frau") document.forms["dok"].genus.value="geehrte";
if(document.forms["dok"].anrede.value=="Fa.") document.forms["dok"].genus.value="geehrte";
if(document.forms["dok"].anrede.value=="Herr") document.forms["dok"].genus.value="geehrter";
if(document.forms["dok"].anrede.value=="Familie") document.forms["dok"].genus.value="geehrte";
 if(document.forms["dok"].ansprechpartnername.value!="" && document.forms["dok"].anrede.value!="")
 {
  var name=document.forms["dok"].ansprechpartnername.value;
  if(!document.forms["dok"].vornamezeigen.checked)
  {
  name = name.split(" ");
  name = name[1];
  if(!name) name=document.forms["dok"].ansprechpartnername.value;
  }
  document.getElementById("kopftext").innerHTML="Sehr " + document.forms["dok"].genus.value + " " + document.forms["dok"].anrede.value + " " + name;
 }
}
function delpos(id)

{ // <-- hier will er mit n fehler reinwürgen!

if(window.promt("Wollen sie die Position " + id + " wirklich entfernen?"))
 {
 document.getElementById('action').value="delart";
 document.getElementById('delid').value=id;
 document.forms["dok"].submit();
 }
}
</script>
</head>
<body bgcolor="#FFFFFF">
<form name="dok" action="kunde-ab.html" method="post">

<input type='hidden' name='action'>
<input type='hidden' name='addmenge'>
<input type='hidden' name='delid'>
<input type='hidden' name='rsatztyp'>
<input type='hidden' name='rid' value='1'>
<input type='hidden' name='markkunde' value='1'>

[.........jede menge zeugs........]

<table>
    <tr>
      <td></td>
      <td align=center id=textbereich>
        <textarea cols=50 rows=5 name='kopftext'>Sehr geehrter Herr ..</textarea>
      </td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td><b>Pos.</b></td>
      <td><b>Bezeichnung / Beschreibung</b></td>
      <td><b>Menge</b></td>
      <td><b>Preis</b></td>
      <td><b>Aktionen</b></td>
    </tr>
<tr>
 <td>1</td>
 <td><textarea cols=50 rows=5 name='pos0'> </textarea></td>
 <td valign=top><input type=text size=5 name='menge1' value='1'></td>
 <td valign=top><input type=text size=5 name='preis1' value=''></td>
 <td><input type='button' name='entfernen1' value='Entfernen' onclick=delpos('1')></td>
</tr>
<tr>
 <td>2</td>
 <td><textarea cols=50 rows=5 name='pos1'> [...] </textarea></td>
 <td valign=top><input type=text size=5 name='menge2' value='1'></td>
 <td valign=top><input type=text size=5 name='preis2' value='123'></td>
 <td><input type='button' name='entfernen2' value='Entfernen' onclick=delpos('2')></td>
</tr>
</table>

</form>
</body>
</html>

_____________________________________________
hoffe jemand weiß rat
ich tippe ja drauf , dass es n richtig schön bescheuerter fehler is, aber ich komme nich drauf ;(

danke im voraus

  1. Hallo mech,

    document.getElementById('action').value="addart";

    Damit suchst du nach irgend einem html-Tag, der ein id-Attribut mit dem Wert 'action' enthält. Du würdest also beispielsweise sowas finden:

    <img src="wasauchimmer.gif" id="action">

    Oder auch sowas:

    <input type='hidden' id='action'>

    Aber nicht sowas:

    <input type='hidden' name='action'>

    Das kannst du am einfachsten ansprechen mit:

    document.dok.action.value = "addart";

    Allerdings geht das auch noch nicht ganz, weil du damit wahrscheinlich eher den Wert des action-Attributs des Formulars ändern würdest. Am besten ist's also, wenn du das versteckte Eingabefeld anders nennst:

    <input type='hidden' name='cgiaction'>

    Und dann so ansprichst:

    document.dok.cgiaction.value = "addart";

    [...]
     document.getElementById('delid').value=id;

    Hier natürlich genauso:

    document.dok.delid.value = id;

    Viel Erfolg,
    Robert

    PS:

    if(window.promt("Wollen sie die Position " + id + " wirklich entfernen?"))

    "Möchten" klingt IMHO höflicher als "wollen".

    1. Hallo mech,

      hallo robert

      document.getElementById('action').value="addart";

      Damit suchst du nach irgend einem html-Tag, der ein id-Attribut mit dem Wert 'action' enthält. Du würdest also beispielsweise sowas finden:

      <img src="wasauchimmer.gif" id="action">

      Oder auch sowas:

      <input type='hidden' id='action'>

      Aber nicht sowas:

      <input type='hidden' name='action'>

      da muss ich widersprechen, denn es noch 2 andere funktionen, welche selbiges problemlos tun

      vielleicht sollte ich noch nebenbei erwähnen, dass das ganze explizit für den IE ab 5.5 ist

      Viel Erfolg,
      Robert

      auch wenn ich nich weiter bin, danke

      PS:

      if(window.promt("Wollen sie die Position " + id + " wirklich entfernen?"))

      "Möchten" klingt IMHO höflicher als "wollen".

      okok, darüber will ich jetz ních streiten ;)=
      auch wenn ich leicht geneigt bin dir zuzustimmen ;)

      grüße

      1. Hallo mech,

        da muss ich widersprechen, denn es noch 2 andere funktionen, welche selbiges problemlos tun

        Komisch, hätte ich nicht so erwartet.

        vielleicht sollte ich noch nebenbei erwähnen, dass das ganze explizit für den IE ab 5.5 ist

        Habs jetzt gerade ausprobiert. Bei mir "würgt" er den Fehler in Zeile 54 "rein", das ist eine Zeile weiter unten (die erste Zeile hat für IE anscheinend den Index 1, nicht 0).

        Du hast in deinem Ausgangsposting geschrieben, du hoffst, dass "es n richtig schön bescheuerter fehler is". Deine Wünsche sind in Erfüllung gegangen ;-)

        if(window.prompt("Wollen sie die Position " + id + " wirklich entfernen?"))
                      ^

        Das zweite p in "prompt" hat gefehlt. So funktionierts, allerdings ist prompt in diesem Fall wahrscheinlich sowieso die falsche Funktion, besser wäre confirm.

        viele Grüße,
        Robert