0

我使用过“ bootstrap-datetimepicke ”,但在使用 jQuery 清除文本框时遇到问题。

我的html代码是:

<div class="input-group datetimepicker4">
    <input id="from" name="from" value="<?php echo $from ?>" placeholder="from" data-format="yyyy-MM-dd" readonly="readonly" type="text" style="background-color: #fff">
    <span class="input-group-addon add-on">
        <i data-time-icon="icon-time" data-date-icon="icon-calendar" class="icon-calendar"></i>
    </span>
</div>
<button class="btn btn-default" type="reset" name="reset">Reset</button>

使用以下代码我尝试重置文本框值:

$(function() {
    $('.datetimepicker4').datetimepicker({
        pickTime: false,
        maskInput: true,
    });
});


$(document).ready(function () {
    $('button[type="reset"]').click(function () {
        $('#from').val('');     
        console.log($('#from').val());
    });
});

按下按钮并检查控制台后,它显示一个正确的空值,而文本框值保持旧值(输入的值由脚本填充,但用户应该能够在单击重置按钮时重置该值)。

我将按钮类型从“重置”更改为“按钮”,现在又出现了另一个问题!

$(document).ready(function () {
    $('button[type="button"]').click(function () {
        $('#from').val('');     
        console.log($('#from').val());
    });
});

单击按钮时,不再显示其值,而打开检查元素窗口显示旧值,这会导致在提交表单后发布相同的值。

4

1 回答 1

1

问题是因为input与 datpicker 相关的是隐藏的,所以您没有更改正确的值。如果您检查 API,您会看到setValue需要使用一种方法来更新字段的值,以使隐藏字段和可见字段保持同步。尝试这个:

$('.datetimepicker4').data('datetimepicker').setDate(null);
于 2014-04-01T08:52:12.237 回答