views:

199

answers:

1

hi guys, thus far i've only been using some basic jquery selectors and functions. but i'm looking at this clear form function and i can't figure out how to add it so i can remove hidden inputs and readonly input from getting cleared.

can anybody help? thanks.

function clearForm(form) {
  // iterate over all of the inputs for the form
  // element that was passed in
  $(':input', form).each(function() {
 var type = this.type;
 var tag = this.tagName.toLowerCase(); // normalize case
 // it's ok to reset the value attr of text inputs,
 // password inputs, and textareas
 if (type == 'text' || type == 'password' || tag == 'textarea')
   this.value = "";
 // checkboxes and radios need to have their checked state cleared
 // but should *not* have their 'value' changed
 else if (type == 'checkbox' || type == 'radio')
   this.checked = false;
 // select elements need to have their 'selectedIndex' property set to -1
 // (this works for both single and multiple select elements)
 else if (tag == 'select')
   this.selectedIndex = -1;
  });
};
+3  A: 

If the elements have a readonly attribute in their declaration, you can use jQuery’s :not() selector:

$(':input:not([readonly])', form)

Otherwise filter the read-only elements with something like this:

$(':input', form).each(function() {
    if (this.readOnly) return;
    // …
});
Gumbo
ya but how do you put that into the function?
melaos
sweet, that's exactly what i needed.
melaos
So mark the anwer as correct.
Miguel Ping