frequently ask ? : Computers : Programming : Languages : JavaScript : Forms

+ Search
Add Entry AlertManage Folder Edit Entry Add page to http://del.icio.us/
Did You Find This Entry Useful?

72 of 137 people (53%) answered Yes
Recently 3 of 10 people (30%) answered Yes

Entry

I have my form elements organized in table rows. How can I reset the elements in a particular row?

Mar 15th, 2001 06:09
Martin Honnen,


NN6 and IE4+ allow that:
<HTML>
<HEAD>
<SCRIPT>
function resetFormElement (element) {
  switch (element.type.toLowerCase()) {
    case 'text':
    case 'password':
    case 'textarea':
      element.value = element.defaultValue;
      break;
    case 'radio':
    case 'checkbox':
      element.checked = element.defaultChecked;
      break;
    case 'select-one':
    case 'select-multiple':
      for (var i = 0; i < element.options.length; i++)
        element.options[i].selected = 
element.options[i].defaultSelected;
      break;
  }
}
function resetRow (tableID, rowIndex) {
  if (document.all) {
    var table = document.all[tableID];
    var row = table.rows[rowIndex];
    var inputs = row.all.tags('INPUT');
    for (var i = 0; i < inputs.length; i++)
      resetFormElement(inputs[i]);
    var selects = row.all.tags('SELECT');
    for (var i = 0; i < selects.length; i++)
      resetFormElement(selects[i]);
    var textareas = row.all.tags('TEXTAREA');
    for (var i = 0; i < textareas.length; i++)
      resetFormElement(textareas[i]);
  }
  else if (document.getElementById) {
    var table = document.getElementById(tableID);
    var row = table.rows[rowIndex];
    var inputs = row.getElementsByTagName('INPUT');
    for (var i = 0; i < inputs.length; i++)
      resetFormElement(inputs[i]);
    var selects = row.getElementsByTagName('SELECT');
    for (var i = 0; i < selects.length; i++)
      resetFormElement(selects[i]);
    var textareas = row.getElementsByTagName('TEXTAREA');
    for (var i = 0; i < textareas.length; i++)
      resetFormElement(textareas[i]);
  }
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="formName">
row index:
<INPUT TYPE="text" NAME="row" VALUE="0" SIZE="3">
<INPUT TYPE="button" VALUE="reset row"
       ONCLICK="resetRow('aTable', this.form.row.value)"
>
<TABLE ID="aTable" BORDER="1">
<TR>
<TD>
0
</TD>
<TD>
<INPUT TYPE="text" NAME="field0">
</TD>
<TD>
<INPUT TYPE="radio" NAME="field1" VALUE="radio0">
<INPUT TYPE="radio" NAME="field1" VALUE="radio1">
</TD>
</TR>
<TR>
<TD>
1
</TD>
<TD>
<INPUT TYPE="text" NAME="field2" VALUE="Kibology">
</TD>
<TD>
<INPUT TYPE="radio" NAME="field3" VALUE="radio0">
<INPUT TYPE="radio" NAME="field3" VALUE="radio1" CHECKED>
</TD>
</TR>
<TR>
<TD>
2
</TD>
<TD>
<SELECT NAME="field4">
<OPTION SELECTED>Kibo
<OPTION>Maho
<OPTION>Xibo
</SELECT>
</TD>
<TD>
<SELECT NAME="field5" SIZE="3" MULTIPLE>
<OPTION SELECTED>Kibo
<OPTION>Maho
<OPTION SELECTED>Xibo
</SELECT>
</TD>
</TR>
<TR>
<TD>
3
</TD>
<TD>
<INPUT TYPE="checkbox" NAME="field6" CHECKED VALUE="Kibology">
</TD>
<TD>
<INPUT TYPE="password" NAME="field7">
</TD>
</TR>
</TABLE>
</BODY>
</HTML>