2017-11-16 15 views
0

には、2つの日付入力を持つhtmlフォームがあります。私は、デフォルト値を当日の前週に設定したいと思います。htmlフォーム日付入力のデフォルト値の設定

次のスクリプトを実行することはできません。誰かが私が間違っていることを指摘できますか?

私は"Object does not allow properties to be added or changed"エラーが発生しています。

Code.gs:

function pickDates() { 
    var d = new Date(); 
    var e = new Date(); 
    d.setDate((d.getDate() - d.getDay() % 7) - 7); 
    e.setDate(e.getDate() - (e.getDay() + 1) % 7); 
    d = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate(); 
    e = e.getFullYear() + '-' + (e.getMonth() + 1) + '-' + e.getDate(); 
    var htmlB = HtmlService.createHtmlOutputFromFile('Pick Dates').setWidth(200).setHeight(200); 
    htmlB.d = d; 
    htmlB.e = e; 
    SpreadsheetApp.getUi().showModalDialog(htmlB, 'Select Dates'); 
} 

Dates.htmlを選択:テンプレートで

<!DOCTYPE html> 
<html> 

<head> 
    <base target="_top"> 
</head> 

<body> 
    <form> 
    Start Date<br> 
    <input id="start" type="date" name="startDay"> 
    <br><br> End Date<br> 
    <input id="end" type="date" name="endDay"> 
    <br><br> 
    <input type="button" value="Submit" onclick="google.script.run 
      .withSuccessHandler(google.script.host.close) 
      .sendEmails(this.parentNode)" /> 
    </form> 
    <script> 
    document.getElementById('start').value = d; 
    document.getElementById('end').value = e; 
    </script> 
</body> 

</html> 
+0

を追加するには、「私は彼らが仕事を得ることができない」とはどういう意味ですか?それらはエラーを生成していますか?これは混乱している – Colton

答えて

2

evaluate()にさかのぼり、あなたはcreateTemplateFromFile()を使用する必要があります。このエラーは、createHtmlOutputFromFile()から返されたHtmlOutputオブジェクトに、htmlB.d = d;のようなプロパティを追加できないためです。あなたはDates.htmlを選んscriptlets代わり

function pickDates() { 
    var d = new Date(); 
    var e = new Date(); 
    d.setDate((d.getDate() - d.getDay() % 7) - 7); 
    e.setDate(e.getDate() - (e.getDay() + 1) % 7); 
    d = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate(); 
    e = e.getFullYear() + '-' + (e.getMonth() + 1) + '-' + e.getDate(); 

    // create a template 
    var htmlB = HtmlService.createTemplateFromFile('Pick Dates'); 
    htmlB.d = d; 
    htmlB.e = e; 

    // evaluate() returns HtmlOuput object 
    var modal_html = htmlB.evaluate().setWidth(200).setHeight(200); 

    SpreadsheetApp.getUi().showModalDialog(modal_html, 'Select Dates'); 
} 

とHTMLテンプレートを使用することができます - 印刷スクリプトレット

... 

    <script> 
    document.getElementById('start').value = <?= d ?>; 
    document.getElementById('end').value = <?= e ?>; 
    </script> 
</body> 
関連する問題