问题
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('');
回答1:
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.
回答2:
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("");
回答3:
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('');
回答4:
You can use $('#Form_name select:not(.fixed)').val('');
来源:https://stackoverflow.com/questions/13070819/reset-value-of-multiple-but-not-all-form-fields-with-jquery-in-one-line