use*_*358 6 asp.net-mvc asp.net-mvc-3
我正在使用强类型模型来查看.我有一个禁用的文本框,其值我使用javascript更新.使用此文本框进行渲染
<%: Html.TextBoxFor(model => model.TotalAmount, new { disabled = "disabled"})%>
Run Code Online (Sandbox Code Playgroud)
这会将带有NAME和ID的文本框呈现为"TotalAmount".TotalAmount也是我的模型上绑定到此视图的属性.
在视图中更新其值的javascript在其函数中是这样的:
document.getElementById('TotalAmount').value = {assigning new value here};
Run Code Online (Sandbox Code Playgroud)
函数确实被调用,当我在另一个可编辑的文本框中更改某个值时,我可以在禁用的文本框中看到该值.但是,当我将此表单发布到我的操作方法时,如下所示:
[HttpPost]
public ActionResult Process (ProcessVM FormPostVM)
{
}
Run Code Online (Sandbox Code Playgroud)
已禁用的文本框属性[TotalAmount]仍具有旧值,但我修改的可编辑文本框包含我输入的新值.为什么禁用的文本框不包含javascript更新值?
我试过用
ModelState.Remove("TotalAmount");
Run Code Online (Sandbox Code Playgroud)
在上面的动作方法中,但正如我已经认为它不起作用.
任何线索,提示?
谢谢你的时间....
Dar*_*rov 25
HTML输入元素(例如具有该disabled="disabled"属性的文本框)在提交表单时永远不会将其值发送到服务器.如果要将值发送到服务器,同时仍禁止用户更改它,则可以创建文本框readonly:
<%= Html.TextBoxFor(model => model.TotalAmount, new { @readonly = "readonly" }) %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6959 次 |
| 最近记录: |