获得完全跨浏览器支持的最佳方法是创建一个使用第三方日期选择器库的自定义格式化程序,例如jQuery UI datepicker。日期选择器的正确选择取决于您的需求和现有的前端框架。
在 jQuery datepicker 的情况下,自定义格式化程序可能看起来像这样(此示例使用标准输入编辑器,您会在onRendered函数中注意到它将标准输入转换为 jQuery datepicker):
var dateEditor = function(cell, onRendered, success, cancel, editorParams){
var cellValue = cell.getValue(),
input = document.createElement("input");
input.setAttribute("type", "text");
input.style.padding = "4px";
input.style.width = "100%";
input.style.boxSizing = "border-box";
input.value = typeof cellValue !== "undefined" ? cellValue : "";
onRendered(function(){
input.style.height = "100%";
$(input).datepicker(); //turn input into datepicker
input.focus();
});
function onChange(e){
if(((cellValue === null || typeof cellValue === "undefined") && input.value !== "") || input.value != cellValue){
success(input.value);
}else{
cancel();
}
}
//submit new value on blur or change
input.addEventListener("change", onChange);
input.addEventListener("blur", onChange);
//submit new value on enter
input.addEventListener("keydown", function(e){
switch(e.keyCode){
case 13:
success(input.value);
break;
case 27:
cancel();
break;
}
});
return input;
}
然后,您可以将其添加到列定义中的列中:{title:"Date", field:"date", editor:dateEditor}