Toon posts:

[javascript] veldnaam meegeven aan functie

Pagina: 1
Acties:

Verwijderd

Topicstarter
hoi,
Ik wil met de functieaanroep de veldnaam meegeven, maar ik krijg steeds een foutmelding dat het veld leeg is.

dit is de code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<head>
<title>JavaScript test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
   function editField(txtField){
    window.document.myForm.txtField.value = "testwaarde";
   }
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="myForm" method="post" action="">
  <input type="text" name="txtName">
  <input type="button" name="Button" value="Button" onClick="javascript:editField('txtName');">
</form>
</body>
</html>

Als ik i.p.v. txtField txtName in de functie gebruik werkt het wel. Hoe kan ik dus de naam van het veld meegeven waarin een waarde moet worden ingevuld?

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<head>
<title>JavaScript test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
   function editField(txtField){
    eval('document.all["myForm"].' + txtField).value= "testwaarde";
   }
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="myForm" method="post" action="">
  <input type="text" name="txtName">
  <input type="button" name="Button" value="Button" onClick="javascript:editField('txtName');">
</form>
</body>
</html>

Verwijderd

eval() is een lelijke functie, als je hem kunt vermijden (kan altijd wel) kun je hem beter niet gebruiken. Bovendien is document.all IE4+ only...

In dit geval zou ik je functie iets anders aanpassen:
code:
1
2
3
function editField(argField){
  document.forms['myForm'].elements[argField].value = 'doemaarwat';
}

De functieaanroep blijft hetzelfde.

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Waarom is eval() een 'lelijke functie'? Het werkt prima..

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Waarom is eval() een 'lelijke functie'? Het werkt prima..
Een Lada rijdt ook, maar wil nog niet zeggen dat ie mooi is. Mensen gebruiken teveel eval(), simpelweg omdat ze het object-principe niet snappen. Zeker bij ingewikkeldere code is er met eval() op een gegeven moment geen wijs meer uit te komen. Dan is het 10x makkelijker om gewoon objectreferenties mee te sturen.

Bovendien is eval() script-only en als je zo leert programmeren kun je het dus nergens anders toepassen.
Als je eval al gebruikt, gebruik het dan niet om complete regels code uit te voeren, maar waar die voor bedoeld is: het evalueren van een object.