我不知道如何填充日期选择器。我有一个功能“编辑数据”,当用户点击这个按钮时,一个自定义html表单就会打开,电子表格的所有数据都会显示在那里。文本字段的部分很简单,只是 TextField.value = data[1]
,但对于日期类型,我不知道如何执行此操作,我的代码是:
function pesquisarContrato(){
var dashboard = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Dashboard');
var planContrato = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Contratos');
var contrato = dashboard.getRange("G3").getValue();
if(contrato == ""){return false;}
var dados = planContrato.getRange(3,1, planContrato.getLastRow(), 27).getValues();
for(var linha = 0; linha<dados.length; linha++) {
if(dados[linha][0] == contrato) {
var dados_completos = {}
dados_completos.id_contrato = dados[linha][0];
dados_completos.licitacao = dados[linha][1];
dados_completos.nsipac = dados[linha][2];
dados_completos.objetivo = dados[linha][3];
dados_completos.empresa = dados[linha][4];
dados_completos.cnpj = dados[linha][5];
//here, I get the day of data with custom function ToDate()
dados_completos.inicioVigencia = toDate(linha,6)[0];
return ([dados_completos.id_contrato, dados_completos.licitacao, dados_completos.nsipac, dados_completos.objetivo, dados_completos.empresa, dados_completos.cnpj, dados_completos.inicioVigencia])
}
function toDate(linha, coluna){
var planContrato = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Contratos');
var dados = planContrato.getRange(3,1, planContrato.getLastRow(), 27).getValues();
var d = Utilities.formatDate(new Date(dados[linha][coluna]), Session.getScriptTimeZone, "dd/MM/yyyy");
var split = d.split('/');
// Month is zero-indexed so subtract one from the month inside the constructor
var date = new Date(split[2], split[1]-1,split[0]); //Y M D
var day = date.getDate();;
var month = date.getMonth()+1;
var year = date.getFullYear();
var date_completa = {};
date_completa.day = day;
date_completa.month = month;
date_completa.year = year;
return ([date_completa.day, date_completa.month, date_completa.year])
}
因此,它是.html部分:
<div class="row">
<div class="input-field col s3">
<input id="iniciogarantia" type="date" class="validate">
<label for="iniciogarantia">Início da garantia</label>
</div>
<script>
google.script.run.withSuccessHandler(pesquisar).pesquisarContrato();
var campoContrato = document.getElementById("contrato");
var campoLicitacao = document.getElementById("licitacao");
var campoSipac = document.getElementById("sipac");
var campoObjetivo = document.getElementById("objetivo");
var campoEmpresa = document.getElementById("empresa");
var campoCnpj = document.getElementById("cnpj");
var campoIniciovigencia = document.getElementById("iniciovigencia");
function pesquisar(atualizar){
campoContrato.value = atualizar[0];
campoLicitacao.value = atualizar[1];
campoSipac.value = atualizar[2];
campoObjetivo.value = atualizar[3];
campoEmpresa.value = atualizar[4];
campoCnpj.value = atualizar[5];
// this part have an issue, .value don't works for datepicker, so how can I populate this //field?
//campoIniciovigencia.? = atualizar[6];
M.updateTextFields();
}
</script>
暂无答案!
目前还没有任何答案,快来回答吧!