$(document).ready(function () { $(".zipcode-check").on("change", function () { let message = ""; let parent = $(this).parents(".zipcode-container"); let inputs = parent.find(".zipcode-check"); let invalid = parent.find(".zipcode-invalid"); const reg = new RegExp("^[0-9]+$"); $.each(inputs, function () { let value = $(this).val(); let size = $(this).attr("size"); let error = false; if (value.length > 0) { if (reg.test(value) === false) { message = "郵便番号は半角数字で入力してください。"; error = true; } else if (value.length != size) { if (message == "") { if (size == 3) { message = "郵便番号の前半は3桁で入力してください。"; } else if (size == 4) { message = "郵便番号の後半は4桁で入力してください。"; } } error = true; } if (error) { if (!$(this).hasClass("border-danger")) $(this).addClass("border-danger"); } else { $(this).removeClass("border-danger"); } } }); invalid.text(message); }); });