2012-06-17 236 views
1

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

回答

2

您应该分配您的复选框的名称,这样就可以在e.parameter.checkboxname处理函数检索其值:这个值是布尔值。

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

与ID可以从处理函数(如有必要的getElementById())

注意,处理程序可以在该复选框本身(改变处理器修改其状态(或任何其他) )或UI中的任何其他元素,具体取决于您的需求。

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

,然后(例如作为显示它的标签)

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

我可能是错的,但是我相信这是与复选框状态的问题,即使其状态看起来像布尔值,它不会表现得像布尔但像串

  1. 如果您在打印

    电子表格e.parameter.myCheckBox你会得到TRUE或FALSE

  2. 如果您在电子表格打印e.parameter你会得到整个对象,看看myCheckBox = true或myCheckBox =假

  3. 但是,如果(e.pa rameter.myCheckBox)将始终返回true

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

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

ps。与谷歌证实,e.parameter.myCheckBox是一个字符串,而不是如果你想使用它作为布尔它会像一个布尔

(e.parameter.myCheckBox ==“真”)

+0

价值观e.parameter.something的确是字符串,所以在上次编辑,你应该写'(e.parameter.myCheckBox == '真')' –

+0

是的,对于错字,现在修改|谢谢 –

相关问题