简体   繁体   English

具有datepicker值的按钮单击事件在bootstrap-datepicker上较旧

[英]button click event with get datepicker value is old on bootstrap-datepicker

I used bootstrap-datepicker component.When I change 'other', change 'day' again but I get datepicker value is old(select 'other' datepicker value) by Button click event. 我使用了bootstrap-datepicker组件。当我更改“ other”时,再次更改“ day”,但是我通过Button click事件得到datepicker值旧(选择“ other” datepicker值)。

My code: 我的代码:

    $('#date').change(function (e) {

        switch (this.value) {
            case 'day':
                $("#dpform").val(showdate(-1));
                $("#dpdend").val(showdate(0));
                $('#dpform').attr("disabled", "disabled");
                $('#dpdend').attr("disabled", "disabled");
                break;
            case 'week':
                $("#dpform").val(showdate(-7));
                $("#dpdend").val(showdate(0));
                $('#dpform').attr("disabled", "disabled");
                $('#dpdend').attr("disabled", "disabled");
                break;
            case 'month':
                $("#dpform").val(showdate(-30));
                $("#dpdend").val(showdate(0));
                $('#dpform').attr("disabled", "disabled");
                $('#dpdend').attr("disabled", "disabled");
                break;
            case 'other':
                $("#dpform").val(showdate(0, 'other'));
                $("#dpdend").val(showdate(0, 'other'));
                $('#dpform').removeAttr("disabled");
                $('#dpdend').removeAttr("disabled");
                break;
        }
   })

//showdate method // showdate方法

function showdate(n, string) {
    var uom = new Date();
    uom.setDate(uom.getDate() + n);

    if (string == "other")
        uom = uom.getFullYear() + "-" + (uom.getMonth() + 1) + "-" + uom.getDate();
    else {
        uom = uom.getFullYear() + "-" + (uom.getMonth() + 1) + "-" + uom.getDate() + " " + uom.getHours() + ":" + uom.getMinutes() + ":" + uom.getSeconds();
}

    return uom.replace(/\b(\w)\b/g, '0$1');
}

//button click event //按钮点击事件

$('.btndataquery').click(function () {
    var a = $("#dpform").val();  //a,b value is old
    var b = $('#dpdend').val();  
    //TO DO ...
});

my html code: 我的html代码:

<select id="date" name="date" class="span2">
    <option value="day" class="btn-date">Last one day</option>
    <option value="week" class="btn-date">Last one week</option>
    <option value="other" class="btn-minimize-other">other</option>
</select>
<input type="button" id="btnQuery" value="Query" class="btn btn-success btndataquery" name="assign" />

<div class="other-search" style="display: none;">
    <div class="control-group">
        <label class="control-label">
        <b>time form:</b></label>
        <div class="controls">
            <input type="text" id="dpform" class="width100" />
            <b>to</b>
            <input type="text" id="dpdend" class="width100" />
        </div>
     </div>
</div>

on button click or some other event if you want change anythings in exciting Date-picker value then try below snipcode 单击按钮或其他事件,如果您想更改令人兴奋的Date-picker值中的任何内容,请尝试以下代码段

/* HTML part */ / * HTML部分* /

/* Jquery part */ $('#datepicker').datepicker('option', 'minDate', new Date(startDate)); / * jQuery部分* / $('#datepicker')。datepicker('option','minDate',new Date(startDate));

$('#datepicker').datepicker('option', 'maxDate', new Date(endDate)); $('#datepicker')。datepicker('option','maxDate',new Date(endDate));

$('#datepicker').datepicker('option', 'defaultDate', new Date(startDate)); $('#datepicker')。datepicker('option','defaultDate',new Date(startDate));

I'm not sure what you mean. 我不确定你是什么意思。 but if I understood you, here's a dirty trick. 但如果我了解您,这是一个肮脏的把戏。

$('.btndataquery').click(function () {
    setTimeout(function(){
       var a = $("#dpform").val();
       var b = $('#dpdend').val();  
       //TO DO ...    
    }, 50);  //Delay 100 milliseconds, so values aren't old
});

We're adding a delay so the values are not old. 我们添加了一个延迟,因此值不会太旧。

Please use this very carefully, it's dirty . 请非常小心地使用它,它很脏

Cheers 干杯

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

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