表单提交时经JS验证的字段值清空,数据传至后端前丢失
表单提交后Contractor和AccountExpDate字段值丢失问题
我开发了两个JavaScript函数,用于验证表单中的Contractor和AccountExpDate字段,函数可正常执行预期验证逻辑,但提交表单时,这两个经验证的字段值变为空白。
相关JavaScript代码
<script> function updateRequirements() { var contract = document.getElementById("contract").value; var expdate = document.getElementById("expdate"); console.log(contract); if (contract == "YES") { expdate.style.display = "block"; } else { expdate.style.display = "none"; } } function dateRequirements() { var contract = document.getElementById("contract").value; var expdate = document.getElementById("expdate"); var expdateValue = expdate.value; console.log(expdateValue); if (contract == "YES") { var today = new Date(); var exp = new Date(expdateValue); var difference = exp - today; if (difference > 365 * 24 * 60 * 60 * 1000) { alert("The expiration date cannot be more than 365 days from today"); expdate.value = ""; // Clear the date field } } } </script>
表单简化代码
<form method="post"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-row"> <div class="form-group col-md-6"> <label asp-for="EntryADFormModel.FirstName" class="control-label"></label> <input asp-for="EntryADFormModel.FirstName" class="form-control" /> <span asp-validation-for="EntryADFormModel.FirstName" class="text-danger"></span> </div> <div class="form-group col-md-6"> <label asp-for="EntryADFormModel.LastName" class="control-label"></label> <input asp-for="EntryADFormModel.LastName" class="form-control" /> <span asp-validation-for="EntryADFormModel.LastName" class="text-danger"></span> </div> <div class="form-group col-md-6"> <label asp-for="EntryADFormModel.Contractor" class="control-label"></label> <select name="contract" class="form-control" asp-for="EntryADFormModel.Contractor" id="contract" onchange="updateRequirements();"> <option value="SELECT" selected disabled>Select Answer</option> <option value="YES">Yes</option> <option value="NO">No</option> </select> <span asp-validation-for="EntryADFormModel.Contractor" class="text-danger"></span> </div> <div class="form-group col-md-6"> <label asp-for="EntryADFormModel.AccountExpDate" class="control-label"></label> <input asp-for="EntryADFormModel.AccountExpDate" class="form-control" id="expdate" name="expdate" onchange="dateRequirements()" /> <span asp-validation-for="EntryADFormModel.AccountExpDate" class="text-danger"></span> </div> </div> <div class="form-group"> <input type="submit" value="Create" class="btn btn-primary" /> </div> </form>
提交后字段值丢失截图

内容的提问来源于stack exchange,提问作者Hector Marcia
相关产品推荐
相关产品推荐

