在不单击 'Done' 按钮的情况下将值设置为日期选择器
Set value to a datepicker without clicking 'Done' button
我正在使用 Webix 时间选择器,不知道如何在不单击 "Done" 按钮的情况下强制它设置值(我根本不想显示它)。有没有办法通过 DOM 或通过普通 JS 来做到这一点?
例如,时间选择器(带有type:"time"
的日期选择器)
var time = webix.ui({
view:"datepicker",
align: "right",
label: 'Select Date',
labelWidth:100, width:350,
type:"time", stringResult:true
});
根据您的代码,我会考虑使用 datepicker() directly instead of using ui. its part of the jquery UI set. I have linked directly to the datepicker 网站。
var time = webix.datepicker();
并且在 jquery 页面上有一个时间选择器插件列表,它们也可能有助于填补空白
Timepicker plugins
我使用 DOM 为我的项目创建了一个类似的解决方案。对我来说效果很好,但实际上,这是一个临时的 hack(除非我能找到更好的东西)。看看:
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);
}
});
我稍微修改了你的代码。现在您可以 select 一个日期,点击 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();
}
}
}
工作fiddle:http://webix.com/snippet/91f4cecc
全部在一个脚本中完成:
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 http://webix.com/snippet/1613c3d2
我正在使用 Webix 时间选择器,不知道如何在不单击 "Done" 按钮的情况下强制它设置值(我根本不想显示它)。有没有办法通过 DOM 或通过普通 JS 来做到这一点?
例如,时间选择器(带有type:"time"
的日期选择器)
var time = webix.ui({
view:"datepicker",
align: "right",
label: 'Select Date',
labelWidth:100, width:350,
type:"time", stringResult:true
});
根据您的代码,我会考虑使用 datepicker() directly instead of using ui. its part of the jquery UI set. I have linked directly to the datepicker 网站。
var time = webix.datepicker();
并且在 jquery 页面上有一个时间选择器插件列表,它们也可能有助于填补空白 Timepicker plugins
我使用 DOM 为我的项目创建了一个类似的解决方案。对我来说效果很好,但实际上,这是一个临时的 hack(除非我能找到更好的东西)。看看:
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);
}
});
我稍微修改了你的代码。现在您可以 select 一个日期,点击 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();
}
}
}
工作fiddle:http://webix.com/snippet/91f4cecc
全部在一个脚本中完成:
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 http://webix.com/snippet/1613c3d2