首页 > 解决方案 > 如何使用日期更改输入元素的值?val()/attr()/change() 不工作

问题描述

我有一个日期选择元素

 @Html.RadioButton("radioTimeFilter", "range", false) Date Range
 <span id="dateRangeControls" style="display:none;">
      <input id="txtDateOneFilter" type="text" style="width: 70px;" value="test" @*placeholder="Start Date"*@ />&nbsp;to&nbsp;
      <input id="txtDateTwoFilter" type="text" style="width: 70px;" value="test" @*placeholder="End Date"*@ />
 </span>

并且在准备好文档时,我正在尝试设置从另一个页面传递的这些值

    $(document).ready(function () {
        $("#timeFilter").val("@ViewBag.timeFilter").change();
        console.log("@ViewBag.dateStart");
        console.log("@ViewBag.dateEnd");
        // below fails
        $("#txtDateOneFilter").attr("value", '@ViewBag.dateStart');
        $("#txtDateTwoFilter").attr("value", '@ViewBag.dateEnd');
        //
        $("#ddlDistrictFilter").val("@ViewBag.districtId").change();
    });

我已经尝试过 .val() 并使用 .change() 和其他一些东西。似乎没有任何效果。页面加载后如何更改这些值

标签: javascriptjquery

解决方案


看看这个例子:
https ://stackblitz.com/edit/js-ptckvo

复制代码并使用 ViewBag 修改 dateOne 和 dateTwo 值(保留 val 内的引号):

$(document).ready(function() {
  $("#txtDateOneFilter").val('@ViewBag.dateStart');
  $("#txtDateTwoFilter").val('@ViewBag.dateEnd');
});

如果它不起作用,则问题可能出在 ViewBag 值中。


推荐阅读