select 下拉列表更改时未删除 datetimepicker

datetimepicker not getting removed on change of select drop down

我正在尝试使用以下代码在事件发生变化时添加和删除日期时间选择器。它应用于 select 的更改事件,但在 else 条件下未被删除。有人可以帮忙吗?

function showoption(obj) {
  if (obj.value == "date") {
    $('#txtval').datetimepicker({
      weekStart: 1,
      todayBtn: 1,
      autoclose: 1,
      todayHighlight: 1,
      startView: 2,
      forceParse: 0,
      showMeridian: 1,
      pickerPosition: "bottom-left",
      startDate: new Date()
    });
  } else {
    $('#txtval').datetimepicker("destroy");
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<select name="datatype" id="datatype" onchange="return showoption(this)">
  <option value="int">Int</option>
  <option value="float">Float</option>
  <option value="date">Date</option>
</select><br />
<input type="text" name="txtval" id="txtval" />

尝试为您的日期时间选择器实现这一功能。它适用于我的日期选择器。

function showoption(obj) {
  if (obj.value == "date") {
    $('#txtval').datepicker({
      weekStart: 1,
      todayBtn: 1,
      autoclose: 1,
      todayHighlight: 1,
      startView: 2,
      forceParse: 0,
      showMeridian: 1,
      pickerPosition: "bottom-left",
      startDate: new Date()
    });
  } else {
    $('#txtval').datepicker("destroy");
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<select name="datatype" id="datatype" onchange="return showoption(this)">
  <option value="int">Int</option>
  <option value="float">Float</option>
  <option value="date">Date</option>
</select><br />
<input type="text" name="txtval" id="txtval" />

如果 destroy 不起作用,那么我建议在 datetimepicker 初始化之前和之后检查 $('#txtval') 元素。

然后您可以手动删除任何已添加的 类:

$('#txtval').removeClass('datetimepickerclass');

最后您可以取消绑定插件添加的所有事件

$('#txtval').off(); //or .unbind() depending on jQuery version