繁体   English   中英

引导设置输入类型=来自 jQuery.val() 的日期

[英]Bootstrap set input type=date from jQuery .val()

像其他一些人一样,我很难使用 jquery val() function 来设置日期类型的输入字段的值。

我在 MVC 应用程序中有一个视图,它呈现开始、结束日期和文本字段的列表。 在每一行旁边,我有一个按钮来更改值(设置如下图)。

在此处输入图像描述

按下按钮会打开一个引导对话框,其中包含两个日期输入字段和一个文本输入字段。 我已将要编辑的项目的值存储在按钮的日期属性中,如下面的代码所示。

 <a class="btn btn-outline-secondary custom-btn-width" href="#" 
                   data-id="@item.ID" 
                   data-toggle="modal" 
                   data-target="#scheduleModel"
                   data-start="@item.ProjectStart"
                   data-end="@item.ProjectEnd"
                   data-color="@item.BackgroundColor">
                    <i class="fas fa-edit"></i>
                </a> 

单击按钮时,对话框打开,使用下一个代码块中的 javascript 代码。

<script type="text/javascript">
window.onload = function () {
    $('#scheduleModel').on('show.bs.modal', function (event) {
        var button = $(event.relatedTarget) // Button that triggered the modal
        var id = button.data('id'); // Extract info from data-* attributes
        var start = button.data('start'); 
        var end = button.data('end');
        var color = button.data('color'); 
        
        var modal = $(this)
        modal.find('#SID').val(id)
        modal.find('#projectColor').val(color)

        //Does not work!!
        //modal.find('#inputStartDate').val(start)
        //modal.find('#inputEndDate').datepicker("update", end);

        document.getElementById("inputStartDate").valueAsDate = new Date(start);
        document.getElementById("inputEndDate").valueAsDate = new Date(end);

        console.log(('#inputStartDate').val);
        console.log(end);
    })
};

我尝试使用modal.find('#inputStartDate').val(start)设置日期字段。 那是行不通的。 但是,输入文本字段(颜色)的值设置正确。

所以当谷歌搜索时,我发现了关于 SO 的下一篇文章:

类似问题

这里的解决方案是使用document.getElementById("inputStartDate").valueAsDate = new Date(start); . 这确实设置了输入日期字段的值。 但我想知道为什么不能使用modal.find('#inputStartDate').val(start)语法来设置值。 将 javascript 与 JQuery 混合感觉不对。

长话短说,是否可以使用 jQuery.val() function 设置<input type=date id='startDate'>字段的值? 如果是这样,我该如何做到这一点?

谢谢您的帮助。

更新:

今天我在 SO 上找到了这个链接,它解释了如何设置<input id="datePicker" type="date" />字段的值。

所以它回答了我的问题。

var now = new Date();

var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);

var today = now.getFullYear()+"-"+(month)+"-"+(day) ;

$('#datePicker').val(today);

设置值

[英]Set the value of <input type=“date”… in jquery

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM