You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

表单提交时经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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:40:42