如果没有选择日期,如何阻止bootstrap-datepicker清除输入中的现有值?

nik*_*mav 18 javascript php datepicker twitter-bootstrap bootstrap-datepicker

我有一个div,用户的出生日期预先填充了php:

<div id="datepicker" class="input-group date">
    <label for="dob">Date of Birth</label> <input type="text" class="form-control" id="dob" name="dob" value="<?php $date = new DateTime($this->swimmers->dob); echo $date->format('d/m/Y');?>"><span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript:

<script>     
    $('.container .input-group.date').datepicker({
    startDate: "01/01/1900",
    endDate: "01/01/2100",
    format: "dd/mm/yyyy",
    autoclose: true,
    todayHighlight: true
    });
</script>
Run Code Online (Sandbox Code Playgroud)

Bootstrap设置正常并且工作正常,当"dob"输入获得并失去焦点而不进行日期选择时,它会清除预先填充的值.

但是,如果通过日期选择器选择了日期,然后输入获得并失去焦点,则不会发生这种情况.

如果有人点击,预先填充的价值如何保留在现场?

编辑:第一次进行日期选择时,它会清除预先填充的值,但在第二次进行日期选择之前不会插入所选日期.

更新:工作代码已更新!

Dat*_*tta 38

将Force parse值设置为false:forceParse:false

    $(".applyDatepicker").datepicker({
            forceParse: false
    });
Run Code Online (Sandbox Code Playgroud)


Ste*_*e H 2

如果没有更多示例,无法确定,但问题可能是$this->swimmers->dob您提供给输入的字符串未被 bootstrap-datepicker 识别为日期格式。data-date-format您可以通过将属性添加到输入来定义它使用的日期格式。

例如,如果您使用 MySQL 格式的日期或 PHP 的 DateTime 对象,则$date->format('Y-m-d')可以使用:

<div id="datepicker" class="input-group date">
    <input type="text" class="form-control" id="dob" name="dob" value="<?php echo $this->swimmers->dob;?>" data-date-format="yy-mm-dd"><span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
</div>
Run Code Online (Sandbox Code Playgroud)