reset value of multiple (but not all) form fields with jQuery in one line

8.5k Views Asked by At

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('');
4

There are 4 best solutions below

2
On BEST ANSWER

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.

0
On

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("");
0
On

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('');
1
On

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