Aanpassen waarde action htmlform object mislukt

Pagina: 1
Acties:

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 15:12

alienfruit

the alien you never expected

Topicstarter
Hoi

Ik ben momenteel bezig met een site die gegevens of de pagina doorstuurt via een html formuler met hidden fields. Alleen op het moment dat ik de javascript-functie aanroep die het formulier moet posten; waarbij de waarde van action wordt gezet mislukt het.

Ik gebruik de volgende code:
Java:
1
2
3
4
5
6
7
8
9
10
11
function deleteComment( id ) {
  // change action of the action html form now...
  document.frmMediaList.action                   = './media_action.php';
  // hidden html fields
  document.frmMediaList.action_type.value = "delete";
  document.frmMediaList.newsitem_id.value = id;
  document.frmMediaList.nextpage.value    = "-1";
  document.frmMediaList.prevpage.value    = "-1";
  // submit form
  document.frmMediaList.submit();
}


Alleen als ik deze functie nu aanroep met deleteComment ( 298 ); bijv.
dan krijg ik een fout in Internet Explorer 6 de foutmelding:
"Regel: 42 Teken: 10 - Deze eigenshcap of methode wordt niet ondersteund door dit object"

dat is:
code:
1
          document.frmMediaList.action            = './mediaaction.execute';


Maar volgens verscheidene pagina's zowel hier als op andere web-site wordt wel vermeld dat deze property wel bestaat.

Alleen als ik deze

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 14:29

RM-rf

1 2 3 4 5 7 6 8 9

javascript > W&G (lees stickys: P&W Beleid)

verder is het altijd beter om je form exact aan te spreken:
code:
1
2
var myForm = document.forms['frmMediaList']
     myForm.action = "blah.php"


vermoedelijk werkt dat al beter, of je kan dmv van een alertje tussen het vinden van het form en het veranderen van het action-attribute makelijk ontdekken of er tiepfouten (bv in name van form) een rol spelen, of er mogelijk dubbelle namen/id's zijn, of een javascript-variabele die conflicteerd (document.all is rommelig).

poog het anders eens met myForm.setAtribute("action", "blaaat.php").
het veranderen van een action betekent wel dat de waardes van een file-upload-veld gereset worden, maar dat zal hier niet spelen.

[ Voor 9% gewijzigd door RM-rf op 29-04-2003 23:46 ]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
JS specialisten zitten in W&G :) Vandaar de verhuizing daar naar toe :)

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 15:12

alienfruit

the alien you never expected

Topicstarter
Sorry. Ik zag VBScript staan in het P&W forum dus ik dacht dat het daar naartoe moest. Mijn fout; maar bedankt :)

Ik heb jullie ideën geprobeerd als onderstaan code-snippet, alleen dit werkt nog steeds niet (krijg zelfde foutmelding in IE6).

Java:
1
2
3
4
5
6
7
8
9
function deleteItem ( item_id ) {
  document.forms['frmMediaList'].action_type.value = "delete";
  alert( "action= " + document.forms['frmMediaList'].action_type.value );
  document.forms['frmMediaList'].forward.value     = "-1";
  document.forms['frmMediaList'].backpage.value  = "-1";
  document.forms['frmMediaList'].action            = './media_action.php';
  alert(document.forms['frmMediaList'].action);
  document.forms['frmMediaList'].submit();
}


Voor de details ik roep de functie aan een html button als volgt:

<input type="button" name="action" value="delete" onClick="deleteItem( '1' );" class="button">


Idee was als je op de knop drukt dan wordt je naar een php-script gestuurd, die de gevraagde (delete/edit) actie uitvoerd. Volgens mij zou het eigenlijk gewoon moeten werken.

[ Voor 102% gewijzigd door alienfruit op 30-04-2003 00:37 ]


  • Rickets
  • Registratie: Augustus 2001
  • Niet online

Rickets

Finger and a shift

Het volgende lijkt te werken.

JavaScript:
1
2
document.forms['frmMediaList'].action.value = "./media_action.php";
alert( document.forms['frmMediaList'].action.value );


Ik heb het getest in IE 6, Mozilla 1.2.1 en Opera 7 en ik kreeg netjes de action in de alert :)

If some cunt can fuck something up, that cunt will pick the worst possible time to fucking fuck it up, because that cunt’s a cunt.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:24

crisp

Devver

Pixelated

laat je form eens zien; ik heb nl het idee dat het probleem ergens anders zit (mogelijk een name="submit" bij de submitbutton of een element met name="action" of zoiets)
Rickets schreef op 30 April 2003 @ 00:47:
Het volgende lijkt te werken.

JavaScript:
1
2
document.forms['frmMediaList'].action.value = "./media_action.php";
alert( document.forms['frmMediaList'].action.value );


Ik heb het getest in IE 6, Mozilla 1.2.1 en Opera 7 en ik kreeg netjes de action in de alert :)
logisch, je kent gewoon een nieuwe property toe aan action; je moet echter de action zelf specificeren.

[ Voor 76% gewijzigd door crisp op 30-04-2003 07:37 ]

Intentionally left blank


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 15:12

alienfruit

the alien you never expected

Topicstarter
Dit is de code:

De code voor deleteItem / editItem staat in de<header>-sectie van het document.

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="tableheaderdata" height="32">
      <td class="tabledata"><b>Pos.</b></td>
      <td class="tabledata"><b>Asset Family</b></td>
      <td class="tabledata"><b>Image Caption</b></td>
      <td class="tabledata"><b>Width</b></td>
      <td class="tabledata"><b>Height</b></td>
      <td class="tabledata"><b>Mime Type</b></td>
      <td class="tabledata"><b>Creation Date</b></td>
      <td colspan="2" class="tabledata"><b>Actions</b></td>
</tr>


<form name="frmMediaList" class="form">
<input type="hidden" name="action_type" value="">
<input type="hidden" name="forward"  value="">
<input type="hidden" name="backpage" value="">

<tr>
<td class="tabledata">1</td>
<td class="tabledata">album_cover</td>
<td class="tabledata">header</td>
<td class="tabledata">150</td>
<td class="tabledata">250</td>
<td class="tabledata">image/gif</td>
<td class="tabledata">2003-04-29 22:21:40</td>
<td class="tabledata">
<center>
<input type="button" name="action" value="delete" onClick="deleteItem( '1' );" class="button">
</center>
</td>

<td class="tabledata"><center><input type="button" name="action" value=" edit " onClick="editItem( '1' );" class="button">
</center>
</td>
</tr>
</form>
</table>

[ Voor 41% gewijzigd door alienfruit op 30-04-2003 10:33 . Reden: code opgemaakt :) ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:24

crisp

Devver

Pixelated

alienfruit schreef op 30 april 2003 @ 10:31:
Dit is de code:

De code voor deleteItem / editItem staat in de<header>-sectie van het document.

[...]
Wat ik al dacht dus, verander je name="action" in iets anders voor je buttons, je overschrijft hiermee de form action property voor scripting :)

Intentionally left blank


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 15:12

alienfruit

the alien you never expected

Topicstarter
Argh. Wat flauw :-<
Pagina: 1