У меня есть поля ввода имени, фамилии и адреса электронной почты. Требование от клиента - заполнить поле электронной почты только в том случае, если существует имя или фамилия. Если в одно из этих двух полей не введено значение, электронная почта не требуется. Я разработал этот код, который работает, предполагая, что форма всегда пуста. Проблема в том, что пользователь уже ввел данные и загружает форму. В этом случае мой код бесполезен. Вот рабочий пример того, что я имею до сих пор.
$(".check").on("keyup blur", function() {
var fldVal = $(this).val();
if (fldVal) {
$("#email").closest("div").addClass("required");
$("#email").prop("required", true);
} else {
$("#email").closest("div").removeClass("required");
$("#email").prop("required", false);
}
});
.row {padding: 3px;}
.required label:after { content: " *"; color: red; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form name="text" id="test">
<div class="row">
<label>First Name:</label>
<input type="text" name="first" id="first" class="check">
</div>
<div class="row">
<label>Last Name:</label>
<input type="text" name="last" id="last" class="check">
</div>
<div class="row">
<label>Email:</label>
<input type="email" name="email" id="email">
</div>
<button type="button" name="submit" id="submit">Submit</button>
</form>
Я хотел бы, чтобы мой код проверил все требования при загрузке страницы. Если возможно, все это должно быть сделано с одной функцией. Я не могу придумать хороший способ достичь этого. Пожалуйста, дайте мне знать, если у вас есть идеи.