如何在 ASP.NET MVC 中提交禁用的输入?
如何在 ASP.NET MVC 中提交禁用的输入?
IT技术
c#
.net
javascript
asp.net-mvc
2021-03-04 19:49:47
6个回答
你不能做场readonly="readonly"
而不是disabled="disabled"
吗?只读字段值将提交给服务器,同时用户仍不可编辑。一个SELECT
标签是只有一个例外。
谢谢大家:
我解决这个问题的方式:
document.getElementById("Costo").readOnly = true;
document.getElementById("Costo").style.color = "#c0c0c0";
笔记:
我在答案中得到了这些信息,但我得到了编辑。
@ppumkin 在他对这个答案的评论中提到了这一点,但我想强调这一点,因为我无法找到有关从残疾人提交数据的其他资源<select>
。我也相信它与问题有关,因为选择不是<input>
s,而是“输入”。
只需为禁用的选择包含一个隐藏字段,并对其进行排序。
例子:
@Html.DropDownListFor(model => model.SelectedID, ... , new { disabled = "disabled"}) @* Won't be posted back *@
@Html.HiddenFor(model => model.SelectedID) @* Will be posted back *@
注意:这会在页面上放置两个具有相同 ID 的标签,这不是真正有效的 HTML,可能会导致使用 javascript 时出现问题。对我来说,我有 javascript 来通过它的 html 设置下拉列表的值id
,如果你把隐藏字段放在第一位,javascript 会发现它而不是select
.
通常,如果我有一个“只读”字段但需要提交回服务器,我将禁用显示(或简单的文本),然后添加一个具有相同名称的隐藏字段。您仍然需要确保该字段实际上没有在服务器端修改——只是不要在你的操作中从模型更新它——但是如果有错误,模型状态仍然是准确的。
您还可以在表单提交之前使用这样的代码:
$(":disabled", $('#frmMain')).removeAttr("disabled");