チェックボックスがtrueまたはfalseに設定されているかどうかをチェックするための組み込み関数が見つかりません。isChecked()はapps-scriptでは使用できません(私が正しい場合)。それを見つける方法について何かアイデアがありますか、それとも値が変更された回数をカウントしてチェックされているかどうかを見つけるための値変更ハンドラーが必要ですか?
4 に答える
チェックボックスに名前を割り当てて、e.parameter.checkboxnameを使用してハンドラー関数でその値を取得できるようにする必要があります。この値はブール値です。
var chkmode = app.createCheckBox("description").setName("chk1").setId("chk1")
IDを使用すると、必要に応じてハンドラー関数(またはその他の関数)から状態を変更できます(getElementbyId())
ハンドラーは、必要に応じて、チェックボックス自体(変更ハンドラー)またはUIの他の要素に配置できることに注意してください。
私は間違っているかもしれませんが、checkBoxのステータスに問題があると思います。ステータスはブール値のように見えますが、ブール値ではなく文字列のように動作します。
スプレッドシートe.parameter.myCheckBoxに印刷すると、TRUEまたはFALSEになります
スプレッドシートのe.parameterで印刷すると、オブジェクト全体が取得され、myCheckBox=trueまたはmyCheckBox=falseが表示されます。
ただし、(e.parameter.myCheckBox)が常にTrueを返す場合
私が使用している回避策は次のとおりです。if(e.parameter.myCheckBox == "true")は実際のmyCheckBoxステータスを返します
念のため、課題追跡システムで新しいチケットを開きます。これがお役に立てば幸いです。
ps。Googleで確認済み、e.parameter.myCheckBoxは文字列であり、ブール値ではありません
ブール値として使用する場合は、次のようになります(e.parameter.myCheckBox == "true")
var handler = app.createServerClickHandler('tellStatus');
次に(ラベルに表示する例として)
function tellStatus(e){
var app = UiApp.getActiveApplication();
app.getElementById('yourStatusLabel').setText('Checkbox checked: ' + e.parameter.yourCheckbox)
return app;
}
以下のようなハンドラー関数を使用する必要があります。
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_']+',';
}