Javascript 单击两次后如何调用函数?
我为from date和to date创建了两个日期选择器输入 例如:Javascript 单击两次后如何调用函数?,javascript,jquery,jquery-ui,jquery-ui-datepicker,Javascript,Jquery,Jquery Ui,Jquery Ui Datepicker,我为from date和to date创建了两个日期选择器输入 例如: <input class="datepicker form-control" id="fromDate"> <input class="datepicker form-control" id="toDate"> 我的jQuery代码是: $('#toDate').on('click', function () { $('#ui-datepicker-div').on('click', fun
<input class="datepicker form-control" id="fromDate">
<input class="datepicker form-control" id="toDate">
我的jQuery代码是:
$('#toDate').on('click', function () {
$('#ui-datepicker-div').on('click', function () {
$('.icon-disable-date').hide();
});
});
但是这段代码对我不起作用。如果你的目标是支持HTML5的浏览器,这可以通过承诺来实现。也可以为不受支持的浏览器添加填充
var p1 = new Promise(function(resolve, reject){
$('#toDate').on('click', function () {
resolve(true)
})
}).then(function(result){
new Promise(function(resolve, reject){
if(result) {
$('#ui-datepicker-div').onSelect(function(){
resolve(true)
})
}else {
reject();
}
})
}).then(function(result){
if(result){
$('.icon-disable-date').hide();
}
});
如果你的目标是支持HTML5的浏览器,这可以通过承诺来实现。也可以为不受支持的浏览器添加填充
var p1 = new Promise(function(resolve, reject){
$('#toDate').on('click', function () {
resolve(true)
})
}).then(function(result){
new Promise(function(resolve, reject){
if(result) {
$('#ui-datepicker-div').onSelect(function(){
resolve(true)
})
}else {
reject();
}
})
}).then(function(result){
if(result){
$('.icon-disable-date').hide();
}
});
正如@KevinB在评论中所讨论的,如果您希望图标在两个日期都被选中时消失,您可以使用输入上的更改事件来轻松地执行此操作:
$('.datepicker').datepicker();
$('.datepicker').change(函数(){
如果($('#fromDate').val()!=“”&&($('#toDate').val()!=“”){
$('.icon disable date').hide();
}
});
无论顺序如何,即使用户键入日期而不是选择日期,此操作也有效
JSFiddle:
您也可以使用datepickeronChange
事件来执行此操作,但它不会捕获用户在输入字段中键入以下内容的情况:
$('.datepicker').datepicker({
onSelect:function(){
如果($('#fromDate').val()!=“”&&($('#toDate').val()!=“”){
$('.icon disable date').hide();
}
}
});
正如@KevinB在评论中所讨论的,如果您希望图标在两个日期都被选中时消失,您可以使用输入上的更改事件更轻松地执行此操作:
$('.datepicker').datepicker();
$('.datepicker').change(函数(){
如果($('#fromDate').val()!=“”&&($('#toDate').val()!=“”){
$('.icon disable date').hide();
}
});
无论顺序如何,即使用户键入日期而不是选择日期,此操作也有效
JSFiddle:
您也可以使用datepickeronChange
事件来执行此操作,但它不会捕获用户在输入字段中键入以下内容的情况:
$('.datepicker').datepicker({
onSelect:function(){
如果($('#fromDate').val()!=“”&&($('#toDate').val()!=“”){
$('.icon disable date').hide();
}
}
});
实际需要的是,当两个输入都有值时,隐藏div。Hi@KevinB,我需要在单击#ui datepicker div for#toDate后调用此函数<代码>$('.icon disable date').hide()代码>我想你不知道你需要什么。@KevinB,对不起,我的英语说得不好。我需要在id=“toDate”
中的select date之后调用函数。将更改事件应用于两个输入将相对容易,以监控两个输入的值,以便在更改时,如果两个输入都有值,则隐藏所述图标。不需要奇怪的点击事件。您真正想要的是当两个输入都有值时,隐藏div。嗨@KevinB,我需要在点击#ui datepicker div for#toDate后调用此函数<代码>$('.icon disable date').hide()代码>我想你不知道你需要什么。@KevinB,对不起,我的英语说得不好。我需要在id=“toDate”
中的select date之后调用函数。将更改事件应用于两个输入将相对容易,以监控两个输入的值,以便在更改时,如果两个输入都有值,则隐藏所述图标。不需要奇怪的点击事件。您好,谢谢您的帮助,这段代码非常好,但是在选择日期之后,这段代码$('#ui datepicker div')。在('click',function(){
不起作用!!!这段代码只适用于点击#ui datepicker div
!不适用于选择日期!!!我需要在id=“toDate”中选择日期之后调用函数谢谢,但是$('#ui datepicker div')。在('click',function(){
not wotk after select date!!!!!!!!!!!此代码适用于没有选择日期的click!!!!!!:-(好的,datepicker的日期函数不是click
事件。更新代码。很抱歉误解。((('code>$('ui datepicker div')。在('click',function(){不适用于单击并选择日期:-(您好,谢谢您的帮助,此代码非常好,但在选择日期之后,此代码$('ui datepicker div')。on('click',function(){
不起作用!!!此代码只适用于单击#ui datepicker div
!不适用于选择日期!!!!我需要在id=“toDate”中选择日期后调用函数,谢谢,但是$('#ui datepicker div')。在('click',函数(){
选择日期后不工作!!!!!!!!!!!!!!!!!!!此代码适用于没有选择日期的单击!!!!!!:-(好的,日期选择器的日期函数不是click
事件。更新代码。抱歉误解:-(((((((($)('ui-datepicker-div')。关于('click',函数(){
不适用于单击和选择日期:-(嗨,谢谢你的帮助。你在JSFIDLE中的代码是正确的,但是我项目中的代码不工作!!!为什么?我删除了$('.datepicker').datepicker();
:-)谢谢你嗨,谢谢你的帮助。你在JSFIDLE中的代码是正确的,但是我项目中的代码不工作!!!为什么?我删除了$('.datepicker').datepicker();
:-)谢谢你
var p1 = new Promise(function(resolve, reject){
$('#toDate').on('click', function () {
resolve(true)
})
}).then(function(result){
new Promise(function(resolve, reject){
if(result) {
$('#ui-datepicker-div').onSelect(function(){
resolve(true)
})
}else {
reject();
}
})
}).then(function(result){
if(result){
$('.icon-disable-date').hide();
}
});