Foxtrail815
Foxtrail815

Reputation: 53

How to combine several getElementsByName into one operation?

I have the following javascript and I need to combine them into one operation if possible.

    document.getElementsByName("last_name")[0].required = true;
    document.getElementsByName("company_name")[0].required = true;
    document.getElementsByName("companyIndustry")[0].required = true;
    document.getElementsByName("company_address")[0].required = true;
    document.getElementsByName("email")[0].required = true;
    document.getElementsByName("phone")[0].required = true;
    document.getElementsByName("products")[0].required = true;
    document.getElementsByName("comments")[0].required = true;

Upvotes: 0

Views: 59

Answers (1)

tenshi
tenshi

Reputation: 26324

Using an array of classes with a loop can reduce redundant code:

const classes = ["last_name", "company_name", ...];

for (const className of classes) {
    document.getElementsByClassName(className)[0].required = true;
}

And like @nina-scholz suggested you might want to use ids instead:

const ids = ["last_name", "company_name", ...];

for (const id of ids) {
    document.getElementById(id).required = true;
}

Upvotes: 4

Related Questions