Dimitri Rettig: mit "clear" nur definierte Form-Elemente löschen

Beitrag lesen

Hallo,
ja, aber leider nur mit JavaScript.

<script type="text/javascript">
<!--
function clear() // das zweite Element wird nicht zurückgesetzt
{
   // Die Indizies geben an, ob das jeweilige Element wieder zurückgesetzt werden soll
   rel = new Array(); // rel = reset element
   rel[0] = true;
   rel[1] = false;
   rel[2] = true;

for (int i = 0; i < rel.length; i++)
   {
      if (rel[i])
         document.forms[0].elements[i].value = document.forms[0].elements[i].defaultValue;
   }
}
//-->
</script>

<form>
<input type="text">
<!-- Wird nicht zurueckgesetzt //-->
<input type="text">
<input type="checkbox" checked="checked">
</form>

Etwas eleganter ist es, die Information mit den Elementen abzuspeichern, z. B. im value bereich. Man könnte sich drauf einigen, dass wenn value mit einem Unterstrich '_' beginnt, dass dann das Element NICHT zurückgesetzt werden muss.

Dann sähe die Funktion aus:

function clear()
{
   for (int i = 0; i < document.forms[0].length; i++)
      if (document.forms[0].elements[i].value.length == 0 || document.forms[0].elements[i].value.charAt(0) != '_')
         document.forms[0].elements[i].value = document.forms[0].elements[i].defaultValue;
}

<form>
<input type="text" value="Name">
<!-- Wird nicht zurueckgesetzt //-->
<input type="text" value="_http://">
<input type="checkbox" checked="checked">
</form>

Die zweite Variante hat zum Nachteil, dass die value-Werte für den Benutzer und vielleicht sogar für das CGI-Programm unnötige Unterstriche enthalten.

Jetzt ist es mir eingefallen, dass man mit  with  einen etwas sauberen hätte ... bin aber zu faul, um die zu ändern.

Mit freundlichen Grüßen
   Dimitri Rettig