如何将使用Google的HTML服务创建的复选框的值(或状态)从HTML(在这种情况下为侧边栏GUI)传递到Code.gs以执行检查?
我设法将所有其他数据从这里传递到Code.gs.例如,文本框,日期,文本区域。但是,由于复选框没有“值”,我不知道如何传递状态。
(不是整个剧本,因为它太大了)
在HTHML中:
<input id="complete" name="complete" type="checkbox" />
<script type="text/javascript">
function formSubmit() {
google.script.run.transferUpdates(document.forms[0]);
}
</script>
在Code.gs中:
(同样不是整个代码文件)
function transferUpdates(form1){
var ss = SpreadsheetApp.getActiveSpreadsheet(),
sheet = ss.getSheetByName('Action Plan'),
sheet2 = ss.getSheetByName('Problem Details'),
actionnum = form1.actionup,
desc = form1.description,
check = form1.complete;
我的问题是“check”变量从来没有值要比较,因为没有从HTML表单传递任何内容?
有没有人有解决方案?
(我对HTML很陌生,如果这是一个简单的答案,请道歉)
答案 0 :(得分:0)
您可以向元素添加事件侦听器并传递值等。在您想要调用函数服务器端的情况下尝试此操作。
Code.gs
function doGet() {
return HtmlService.createHtmlOutputFromFile('index').setSandboxMode(HtmlService.SandboxMode.IFRAME)
}
function getStuff(foo){
Logger.log(foo)
}
的index.html
<code>
<div>
<div id="mylabel"></div>
<input id="test" value="testing" type="checkbox">
<script>
document.getElementById('test').addEventListener("change", changeit);
function success(){document.getElementById('mylabel').innerHTML = 'success!'}
function changeit(){
var v = document.getElementById('test').value;
document.getElementById('mylabel').innerHTML = v;
google.script.run.withSuccessHandler(success).getStuff("going IN")
}
</script>
</div>
答案 1 :(得分:0)
我认为你需要做的就是手动设置复选框:
// use template, or overloads for different floatingpoints
template<class T>
T add_s(T l, T r) {
T result = l + r;
T greater = std::max(l, r);
if(result == greater)
return std::nextafter(greater, std::numeric_limits<T>::max());
return result;
}
// ...
for (double f = /*...*/; f < /*...*/; f = add_s(f, 1.0))