Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将值设置为日期选择器而不单击';完成';按钮_Javascript_Jquery_Dom_Datepicker_Webix - Fatal编程技术网

Javascript 将值设置为日期选择器而不单击';完成';按钮

Javascript 将值设置为日期选择器而不单击';完成';按钮,javascript,jquery,dom,datepicker,webix,Javascript,Jquery,Dom,Datepicker,Webix,我正在使用Webix时间选择器,不知道如何在不单击“完成”按钮的情况下强制它设置值(我根本不想显示它)。有没有办法通过DOM或普通JS来实现这一点 例如,时间选择器(类型为“time”的日期选择器) 基于您的代码,我将考虑直接使用而不是使用ui。它是jQueryUI集的一部分。我已直接链接到该网站 在jquery页面上有一个时间选择器插件列表,它也可以帮助填补空白 我使用DOM为我的项目创建了一个类似的解决方案。这对我来说已经足够好了,但事实上,这只是一个暂时的攻击(除非我能找到更好的东西)。请

我正在使用Webix时间选择器,不知道如何在不单击“完成”按钮的情况下强制它设置值(我根本不想显示它)。有没有办法通过DOM或普通JS来实现这一点

例如,时间选择器(类型为“time”的日期选择器)


基于您的代码,我将考虑直接使用而不是使用ui。它是jQueryUI集的一部分。我已直接链接到该网站

在jquery页面上有一个时间选择器插件列表,它也可以帮助填补空白

我使用DOM为我的项目创建了一个类似的解决方案。这对我来说已经足够好了,但事实上,这只是一个暂时的攻击(除非我能找到更好的东西)。请查看:

time.getPopup().attachEvent("onhide", function(){
  var timeArr = document.getElementsByClassName("webix_cal_block webix_selected");
  if (timeArr.length == 2){
    var hour = timeArr[0].getAttribute("data-value");
    var min = timeArr[1].getAttribute("data-value");
    time.setValue(hour+" "+min);
  }  
});

我稍微修改了你的代码。现在,您可以点击
Enter
键选择日期:

var time = webix.ui({   
   view:"datepicker", 
   align: "right",
   label: 'Select Date',
   labelWidth:100, width:350,
   type:"time", stringResult:true
});

document.addEventListener("keydown", keyDownTextField, false);

function keyDownTextField(e) {
  var keyCode = e.keyCode;
  if(keyCode==13) {
     var done = document.getElementsByClassName('webix_cal_done');
     if(done.length > 0){
        done[0].click();
     }
  }
}

工作小提琴:全部在一个脚本中完成:

var time = webix.ui({   
    view:"datepicker", 
    align: "right",
    label: 'Select Date',
    labelWidth:100, width:350,
    type:"time", stringResult:true
}).attachEvent("onBlur", function(){
    document.getElementsByClassName('webix_cal_done')[0].click();
});

谢谢@Hackerman

我稍微修改了你的代码;现在,您可以在按enter键时选择日期值:@Hackerman谢谢,这是个好主意!嗯,我仍然更喜欢在我的项目中使用Webix,所以我对这个小部件的解决方案感兴趣。不过还是谢谢你,谢谢!有了@Hackerman提供的解决方案,它将按照我的需要工作
var time = webix.ui({   
   view:"datepicker", 
   align: "right",
   label: 'Select Date',
   labelWidth:100, width:350,
   type:"time", stringResult:true
});

document.addEventListener("keydown", keyDownTextField, false);

function keyDownTextField(e) {
  var keyCode = e.keyCode;
  if(keyCode==13) {
     var done = document.getElementsByClassName('webix_cal_done');
     if(done.length > 0){
        done[0].click();
     }
  }
}
var time = webix.ui({   
    view:"datepicker", 
    align: "right",
    label: 'Select Date',
    labelWidth:100, width:350,
    type:"time", stringResult:true
}).attachEvent("onBlur", function(){
    document.getElementsByClassName('webix_cal_done')[0].click();
});