What's the most concise way to match multiple keys to 1 value? e.g. in jQuery Validate I have something like:
$("#myform").validate({
rules: {
firstname: "required",
middlename: "required",
lastname: "required"
},
messages: {
firstname: "Please fill in first name",
middlename: "Please fill in middle name",
lastname: "Please fill in last name"
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.1/jquery.validate.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.1/additional-methods.js"></script>
<form id="myform">
<div>
<label for="firstname">First Name</label>
<input type="text" id="firstname" name="firstname">
</div>
<div>
<label for="middlename">Middle Name</label>
<input type="text" id="middlename" name="middlename">
</div>
<div>
<label for="lastname">Last Name</label>
<input type="text" id="lastname" name="lastname">
</div>
<input type="submit" value="Search">
</form>
Which is fine, but I feel repeating firstname: "required"
, middlename: "required"
, lastname: "required"
is not necessary, how can I have multiple keys matching same value maybe like this?
var names = {firstname, middlename, lastname};
$("#myform").validate({
rules: {
names: "required"
},
messages: {
firstname: "Please fill in first name",
middlename: "Please fill in middle name",
lastname: "Please fill in last name"
}
});
I know I can use a for loop, but I'm looking for the most concise way.