Это выглядит совершенно нормально. Более того, в живых проектах удобочитаемость и ремонтопригодность важнее, чем эффективность ваших js. И на самом деле меньшее количество строк не означает большую / меньшую эффективность.
Что я обычно делаю, так это чтобы у каждого входа, который я проверял, была разная функция Затем я вызываю эту функцию проверки в blur
или change
событиях каждого входа. Затем, конечно, другая агрегированная (с каждой функцией проверки) функция должна вызываться при submit
событии form
.
В вашем случае, поскольку каждое поле имеет одну и ту же стратегию проверки, вы можете использовать другую функцию, которая вызывается из входной функции проверки. Таким образом, вы не повторяете никакого кода, другими словами, вы повторно используете свою функцию проверки. В то же время теперь гораздо проще добавить еще одну стратегию проверки к любому имеющемуся входу (isNumber ,weenRange и т. Д.).