0

我有绑定到我的视图模型上的日期时间属性的日期时间选择器。当我从日期时间选择器中选择日期并回发时,它会将值绑定到模型,但是当我尝试通过 jequery 设置值时,该值始终为空。

我的模型是:

 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());});

当我在浏览器中检查控制台时,我看到该值设置正确,但是当我发布表单并检查模型属性时,它为空。

感谢您对此的任何帮助

4

1 回答 1

1

disabledHTML 属性阻止在 POST 请求期间提交输入值(视为空值),如下解释所示:

禁用的元素通常用灰色的文本绘制。如果元素被禁用,它不会响应用户操作,无法聚焦,并且不会触发命令事件。如果是表单元素,则不会提交。

如果您想保留在 POST 期间要提交的值但阻止用户更改其内容,请改用 HTMLreadonly属性

$(':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" })
于 2017-09-15T09:35:44.550 回答