datetimepicker在更改选择下拉列表时未被删除

时间:2018-04-05 13:47:04

标签: javascript jquery datetimepicker

我正在尝试使用以下代码在事件更改时添加和删除datetimepicker。它已应用于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" />
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

答案 1 :(得分:0)

尝试为datetimepicker实现这个。它适用于我的日期选择器。

&#13;
&#13;
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");
  }
}
&#13;
<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" />
&#13;
&#13;
&#13;