检查是否选中了复选框

时间:2012-06-17 13:40:26

标签: google-apps-script

我没有找到任何内置函数来检查复选框是设置为true还是false, isChecked()不可用是apps-script(如果我是对的)。 有关如何找到它的任何想法,或者我们将有一个值更改处理程序来计算值更改的次数并查找是否已检查?

4 个答案:

答案 0 :(得分:2)

您应该为复选框指定一个名称,以便您可以使用e.parameter.checkboxname在处理函数中检索其值:此值为布尔值。

var chkmode = app.createCheckBox("description").setName("chk1").setId("chk1")

使用ID,您可以根据需要从处理函数(或任何其他函数)修改其状态(getElementbyId())

请注意,处理程序可以位于复选框本身(更改处理程序)或UI中的任何其他元素上,具体取决于您的需要。

答案 1 :(得分:2)

我可能错了,但我相信checkBox状态存在问题,即使它的状态看起来像布尔值,它的行为不像布尔值,但像字符串

  1. 如果您在电子表格中打印e.parameter.myCheckBox,您将获得TRUE或FALSE

  2. 如果您在电子表格e.parameter中打印,您将获得整个对象并查看myCheckBox = true或myCheckBox = false

  3. 但是,如果(e.parameter.myCheckBox)将始终返回True

  4. 我使用的解决方法是:if(e.parameter.myCheckBox ==“true”)将返回实际的myCheckBox状态

  5. 以防万一,我在问题跟踪器中打开一张新票 我希望这会对你有所帮助

    PS。通过Google确认,e.parameter.myCheckBox是一个字符串,而不是布尔值

    如果你想将它用作布尔值,那就像(e.parameter.myCheckBox ==“true”)

答案 2 :(得分:1)

var handler = app.createServerClickHandler('tellStatus'); 

然后(例如在标签中显示)

function tellStatus(e){
  var app = UiApp.getActiveApplication();
  app.getElementById('yourStatusLabel').setText('Checkbox checked: ' + e.parameter.yourCheckbox)
  return app;
}

答案 3 :(得分:0)

你应该使用下面的处理函数。

我从https://sites.google.com/site/scriptsexamples/learn-by-example/uiapp-examples-code-snippets/check-box

找到了例子
if(e.parameter['checkbox_isChecked_'] == 'true'){
      itemsSelected+= e.parameter['checkbox_value_']+',';
    }