我的日期时间选择器绑定到我的视图模型上的datetime属性。 当我从日期时间选择器中选择日期并回发时,它会将值绑定到模型,但是当我尝试通过jequery设置值时,该值始终为null。
我的模特是:
public class viewmodel
{
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public datetime DDate { get; set; }
}
,视图代码为
<div class="col-md-3">
@Html.TextBoxFor(m => m.DDate, new {@class = "form-control datepicker" })
@Html.ValidationMessageFor(model => model.DDate, "", new { @class = "text-danger" })</div>
javascript代码
$("#DDate").datepicker({ dateFormat: 'dd/mm/yy' });
所以当我点击一个选项按钮时,它会设置日期时间选择器的日期
$(':input[id="rbVatVoluntary"]').click(function () {
var thDate = $("#DDate");
thDate.attr("disabled", 'disabled');
thDate.datepicker('setDate', new Date());});
当我在浏览器中检查控制台时,我看到该值设置正确但是当我发布表单并检查模型属性时,它为空。
我感谢您对此提供的任何帮助
答案 0 :(得分:1)
disabled
HTML属性阻止在POST请求期间提交输入值(视为空值),如下所示:
禁用的元素通常以灰色文本绘制。如果元素是 禁用,它不响应用户操作,它无法集中, 并且命令事件不会触发。 在表单元素的情况下,它 将不会被提交。
如果您想保留在POST期间提交的值但阻止用户更改其内容,请改用HTML readonly
attribute:
$(':input[id="rbVatVoluntary"]').click(function () {
var thDate = $("#Date");
thDate.attr("readonly", "readonly");
thDate.datepicker('setDate', new Date());
});
您还需要在辅助方法中将属性名称与指定的属性名称匹配:
@Html.TextBoxFor(m => m.Date, new { @class = "form-control datepicker" })