我有一个JS代码,当你改变一个字段,它调用搜索例程。问题是,当Datepicker更新输入字段时,我找不到任何将触发的jQuery事件。
由于某种原因,当Datepicker更新字段时,没有调用更改事件。当日历弹出时,它会改变焦点,所以我也不能使用它。什么好主意吗?
我有一个JS代码,当你改变一个字段,它调用搜索例程。问题是,当Datepicker更新输入字段时,我找不到任何将触发的jQuery事件。
由于某种原因,当Datepicker更新字段时,没有调用更改事件。当日历弹出时,它会改变焦点,所以我也不能使用它。什么好主意吗?
当前回答
你在datepicker对象中寻找onSelect事件:
$('.selector').datepicker({
onSelect: function(dateText, inst) { ... }
});
其他回答
我的解决方案是:
events: {
'apply.daterangepicker #selector': 'function'
}
你在datepicker对象中寻找onSelect事件:
$('.selector').datepicker({
onSelect: function(dateText, inst) { ... }
});
DatePicker选择的值更改事件代码如下
/* HTML Part */
<p>Date: <input type="text" id="datepicker"></p>
/* jQuery Part */
$("#datepicker").change(function() {
selectedDate= $('#datepicker').datepicker({ dateFormat: 'yy-mm-dd' }).val();
alert(selectedDate);
});
您可以使用datepicker的onClose选项,并将更改代码放在其中。当datepicker模式关闭时触发。我试图触发变化事件,但这不会工作,所以我把我的代码内的onClose代替,它工作。同样的方法也适用于onSelect,如果你需要在选择日期时触发。
$('#el').datepicker({
onClose: function () {
// code here
}
});
日期选择选项https://api.jqueryui.com/datepicker/
我认为你的问题可能在于你的约会选择器的设置。 你为什么不断开输入…不要使用altField。相反,当onSelect触发时显式地设置值。这将让你能够控制每一次互动;用户文本字段和datepicker。
注意:有时你必须在.change()而不是.onSelect()上调用例程,因为onSelect可以在你不期望的不同交互上调用。
伪代码:
$('#date').datepicker({
//altField: , //do not use
onSelect: function(date){
$('#date').val(date); //Set my textbox value
//Do your search routine
},
}).change(function(){
//Or do it here...
});
$('#date').change(function(){
var thisDate = $(this).val();
if(isValidDate(thisDate)){
$('#date').datepicker('setDate', thisDate); //Set my datepicker value
//Do your search routine
});
});