我正在尝试使用以下代码在事件更改时添加和删除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;
答案 0 :(得分:1)
如果销毁不起作用,那么我建议在初始化datetimepicker之前和之后检查$('#txtval')
元素。
然后,您可以手动删除已添加的任何类:
$('#txtval').removeClass('datetimepickerclass');
最后,您可以取消绑定插件添加的所有事件
$('#txtval').off(); //or .unbind() depending on jQuery version
答案 1 :(得分:0)
尝试为datetimepicker实现这个。它适用于我的日期选择器。
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;