Merkwaardige invoervelden

Om gegevens te vragen van je bezoekers kun je een formulier gebruiken. Hieronder staat zo'n formulier voor het opvragen van Naam- en Adresgegevens. Met dit formulier is echter wat merkwaardigs aan de hand. Dat merk je onmiddellijk als je het gaat invullen...

Naam:
Adres:
PC Woonplaats:  
   

Als je dit op een website tegenkomt, voel je jezelf behoorlijk in de maling genomen. Maar dat is nou precies de bedoeling...

Op deze bladzijde wordt getoond hoe je dit kunt aanpakken. De code staat onderaan deze pagina. Je kunt hem ook downloaden om zelf te gebruiken (als je dat zou willen ...).

Gebruik:

De code ziet er als volgt uit:
 
(Zet dit in de <HEAD>).
Merk op dat elke JavaScript-opdracht op één regel hoort te staan. In deze weergave is dat niet mogelijk.

<script>
// Formulier dat zich niet weet te gedragen
// (c) 2004 Ben's Hobbyhoekje.
// De auteur neemt geen verantwoordelijkheid voor gevolgen van gebruik van dit script.
// Bij toepassing van dit script stemt u hier mee in.
// Dit script mag vrij worden gebruikt mits dit commentaar intact blijft.
 
var NoOfFields= 4;    //   Aantal velden dat zich misdraagt
var fieldSourceId ='', fieldTargetId ='', fieldContent;
var DOM = document.getElementById ? true : false;
 
function GetTargetField(n) { // Onthoud welk veld de focus heeft en bepaal welk veld de focus krijgt
if (DOM) {
  fieldSourceId = 'Textfield' + n;
  fieldTargetId = fieldSourceId;
  while (fieldTargetId == fieldSourceId) { // Kies een veld waar de uitvoer heen gaat
    fieldTargetId = 'Textfield' + Math.floor(Math.random()*NoOfFields);
  }
  document.getElementById(fieldSourceId).value=''; // Maak het bronveld leeg
}
}
 
function ChangeTargetField() {
if (DOM) {
  fieldContent = document.getElementById(fieldSourceId).value;   // Wat is er ingetypt?
  document.getElementById(fieldTargetId).value += fieldContent;   // Zet dat erbij in het 'andere' veld
  document.getElementById(fieldSourceId).value = '';   // Maak het bronveld leeg
}
}
</script>
(Zet dit in de <BODY>, op de plaats waar het formulier moet komen).
Merk op dat er op sommige plaatsen wordt overgegaan op een nieuwe regel terwijl dat niet zou moeten. In deze weergave kan dat niet worden voorkomen.
<form action="JavaScript: alert('Demo\nNiet verzonden');" method="post" name="Vreemd" id="Vreemd">
<table border="1" cellpadding="6" cellspacing="0" bgcolor="#FFFFD8" frame="box" rules="none" align="center"><tr>
  <td align="right" class="MailR">Naam:</td>
  <td><input type="text" name="Textfield0" id="Textfield0" size="35" class="MailB" onFocus="GetTargetField(0)" onKeyUp="ChangeTargetField()"></td>
</tr><tr>
  <td align="right" class="MailR">Adres:</td>
  <td><input name="Textfield1" id="Textfield1" type="text" size="35" class="MailB" onFocus="GetTargetField(1)" onKeyUp="ChangeTargetField()"></td>
</tr><tr>
  <td align="right" class="MailR">PC&nbsp;Woonplaats:</td>
  <td><input name="Textfield2" id="Textfield2" type="text" size="6" class="MailB" onFocus="GetTargetField(2)" onKeyUp="ChangeTargetField()">&nbsp;
  <input name="Textfield3" id="Textfield3" type="text" size="25" class="MailB" onFocus="GetTargetField(3)" onKeyUp="ChangeTargetField()"></td>
</tr><tr>
  <td colspan="2" align="center"><input type="submit" name="Verstuur" id="Verstuur" value="Verstuur" class="MailK">&nbsp; &nbsp;
  <input type="reset" name="Overnieuw" id="Overnieuw" value="Overnieuw" class="MailK"></td>
</tr></table>
</form>

Downloaden:
 
Druk op de knop: Download deze code  File: voorb134.zip, 1356 bytes.

Opmerking:
 
In de HTML-code wordt ook het attribuut class toegepast. Dit zijn STYLE-classes die dienen om het formulier wat op te leuken. Ze stellen de kleur van de letters in het formulier in. De code van deze classes wordt hier niet genoemd, maar zit erbij in de downloadfile.

 
terug

html-134; Laatste wijziging: 10 mei 2020