4

Is it possible to reset multiple form fields in one line, or one hit, with jQuery. Note: I don't want to reset all form fields, only a specified whitelist (as below):

// reset some form fields                       
$('#address11').val('');
$('#address21').val('');
$('#town1').val('');
$('#county1').val('');
$('#postcode1').val('');
crmpicco
  • 14,513
  • 22
  • 113
  • 191

4 Answers4

10

It is better to use a class so you do not have to maintain a long list of ids.

HTML

<input type="text" class="resetThis" id="address11" />
<input type="text" class="resetThis" id="address21" />

JavaScript

$(".resetThis").val("");
epascarello
  • 185,306
  • 18
  • 175
  • 214
7

jQuery (and CSS) selector strings can contain multiple selectors using a comma as a delimiter for sub-selectors:

$('#address11, #address21, #town1, #county1, #postcode1').val('');

I'd argue that this is faster than using a class (ID look-ups should perform in essentially constant time, whereas a class look-up will have to visit every DOM node), but perhaps less maintainable if you're going to want to change which elements get reset.

Cecchi
  • 1,515
  • 9
  • 9
  • 2
    `.class` is [faster](http://jsperf.com/http-stackoverflow-com-questions-13070819-reset-value-o) :) – RASG Oct 25 '12 at 14:58
  • Interesting, thanks for that. I assume parsing the selector string is what takes longer. – Cecchi Oct 25 '12 at 15:07
6

If you have a lot of fields i'd label the ones you want to ignore with a class to minimise code:

$('#myForm input:not(.ignore)').val('');
Emissary
  • 9,018
  • 8
  • 50
  • 58
0

You can use $('#Form_name select:not(.fixed)').val('');

venkatvb
  • 673
  • 1
  • 9
  • 23