从日期输入(JS)获取价值

时间:2017-11-08 15:01:23

标签: javascript jquery

我有两个输入日期加载

的视图

以下是查看这些输入的代码

<div class="device-selection">
    <label for="startDate">@Dictionary.General.StartDate: </label>
    <input id="startDate" class="round-input text-right" readonly />
</div>

<div class="device-selection">
    <label for="endDate">@Dictionary.General.EndDate: </label>
    <input id="endDate" class="round-input text-right" readonly />
</div>

在JS中,我有这个代码用于显示日历和使用日期填充输入:

  $(document).ready(function () {

//cultureTwoLetterName is a global variable from the view that contains the two letter iso language name
    $.datepicker.setDefaults($.datepicker.regional[cultureTwoLetterName]);

    $('#calendar').weekMonthDatepicker({
        changeMonth: true,
        dateFormat: 'yy-mm-dd',
        showWeek: true,
        firstDay: 1,
        weekHeader: '<span class="glyphicon glyphicon-arrow-down"></span>',
        minDate: -loggingRetention,
        maxDate: '+0D',
        weekSelection: true,
        weekSelected: SelectionCallback,
        monthSelection: true,
        monthSelected: SelectionCallback
    });

    $('#startDate').datepicker({
        changeMonth: true,
        dateFormat: 'yy-mm-dd',
        firstDay: 1,
        minDate: -loggingRetention,
        maxDate: '+0D'
    });


    $('#endDate').datepicker({
        changeMonth: true,
        dateFormat: 'yy-mm-dd',
        firstDay: 1,
        minDate: -loggingRetention,
        maxDate: '+0D'
    });


    $('#calendar').on('change', function () {
        $('#startDate').val(moment($(this).val()).format('DD/MM/YYYY'));
        $('#endDate').val(moment($(this).val()).format('DD/MM/YYYY'));
        var start = $('#calendar').weekMonthDatepicker('getStartDate');
        var stop = $('#calendar').weekMonthDatepicker('getEndDate');
        var ui;

        if (start != null && stop != null) {
            ui = { 'startDate': start, 'endDate': stop };

        }

        PopulateTableDetails(null, ui);
    });

    $('#startDate').on('change', function () {
        $(this).val(moment($(this).val()).format('DD/MM/YYYY'));

        if ($('#endDate').val() == '' || moment($('#endDate').val(), 'DD/MM/YYYY') < moment($(this).val(), 'DD/MM/YYYY')) { //endDate niet ingevuld of < startDate --> endDate = startDate
            $('#endDate').val($(this).val());
        }

        var start = moment($(this).val(), 'DD/MM/YYYY');
        var stop = moment($('#endDate').val(), 'DD/MM/YYYY');

        var ui = { 'startDate': start, 'endDate': stop };

        PopulateTableDetails(null, ui);
    });

    $('#endDate').on('change', function () {
        $(this).val(moment($(this).val()).format('DD/MM/YYYY'));

        if ($('#startDate').val() == '' || moment($('#startDate').val(), 'DD/MM/YYYY') > moment($(this).val(), 'DD/MM/YYYY')) { //startDate niet ingevuld of > endDate --> startDate = endDate
            $('#startDate').val($(this).val());
        }

        var start = moment($('#startDate').val(), 'DD/MM/YYYY');
        var stop = moment($(this).val(), 'DD/MM/YYYY');
        var ui = { 'startDate': start, 'endDate': stop };

       });
    }); 

我需要从startDate和endDate获取值

所以我尝试写var startvalue = $('#startDate').val();

在此功能$('#calendar').on('change', function () {

但是我用这段代码得到空警。

我如何正确地获得它的价值?

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

你的方法似乎没问题。只是尝试从输入中删除readonly属性。