希望在提交表单时禁用选择字段值



我有一个表单,其中一个下拉列表处于禁用状态,如下所示:

<div class="form-group">
   <label asp-for="ItemEditModel.ProjectJobId" class="form-label required"></label>
      <div class="form-group">
         <select class="form-control" asp-for="ItemEditModel.ProjectJobId"
                                    asp-items="Model.ProjectJobList" disabled></select>
      </div>
      <span class="text-danger" asp-validation-for="ItemEditModel.ProjectJobId"></span>
</div>

现在,当我们提交表单时,该字段的值不会出现,因为它处于禁用状态

当我们提交表格时,我该如何获得这些字段的值?

使用只读属性而不是禁用

您可以尝试使用路由参数:

<form method="post" asp-route-ItemEditModel.ProjectJobId=@Model.ItemEditModel.ProjectJobId>
   ...
</form>

或者,您可以尝试在提交表单之前删除disabled

    <form id="myForm" method="post">
        <div class="form-group">
       <label asp-for="ItemEditModel.ProjectJobId" class="form-label required"></label>
          <div class="form-group">
             <select class="form-control" asp-for="ItemEditModel.ProjectJobId"
                                        asp-items="Model.ProjectJobList" disabled></select>
          </div>
          <span class="text-danger" asp-validation-for="ItemEditModel.ProjectJobId"></span>
    </div>
        <input type="submit" value="submit"/>
    </form>
<script>
$('#myForm').submit(function () {
            $("#ItemEditModel_ProjectJobId").removeAttr("disabled");
            return true; // return false to cancel form action
        });
</script>

或者您可以添加一个隐藏的输入来绑定ItemEditModel.ProjectJobId:

<form method="post">
      <input hidden asp-for="ItemEditModel.ProjectJobId" />
      ...
</form>

最新更新