Javascript 如何在谷歌应用程序脚本中编写 if/and 语句
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/13894057/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to write an if/and statement in google apps script
提问by user1833055
I am trying to write an if/and statement based on two different drop down lists. Is it possible to write something with the logic below? The "if &&" statement does not work properly, but will work just fine with a single "if" statement. I understand the is a bit of code, but this is the only way I can show exactly what is happening.
我正在尝试根据两个不同的下拉列表编写一个 if/and 语句。是否可以用下面的逻辑写一些东西?“if &&” 语句不能正常工作,但可以在单个“if”语句中正常工作。我知道这是一些代码,但这是我可以准确显示正在发生的事情的唯一方法。
function doGet(e) {
var app = UiApp.createApplication();
var containerSizeList = app.createListBox().setId('containerSizeList').setName('containerSizeList');
containerSizeList.addItem("20ft Long");
containerSizeList.addItem("40ft Long");
var loadingStyleList = app.createListBox().setId('loadingStyleList').setName('loadingStyleList');
loadingStyleList.addItem("On Pallets");
loadingStyleList.addItem("Floor Loaded");
var tenPalletPanel = app.createHorizontalPanel().setId('tenPalletPanel').setVisible(true);
var tenPalletLabel = app.createLabel('10 Pallets Available').setId('tenPalletLabel');
var twentyPalletPanel = app.createHorizontalPanel().setId('twentyPalletPanel').setVisible(false);
var twentyPalletLabel = app.createLabel('20 Pallets Available').setId('twentyPalletLabel');
var loadingNotePanel = app.createHorizontalPanel().setId('loadingNotePanel').setVisible(false);
var loadingNoteLabel = app.createLabel('Note: Only certain products may be floor loaded')
.setId('loadingNoteLabel');
var containerGrid = app.createGrid(1, 2);
containerGrid.setWidget(0, 0, containerSizeList);
containerGrid.setWidget(0, 1, loadingStyleList);
var handlerJ = app.createServerClickHandler('palletChangeMe');
containerSizeList.addChangeHandler(handlerJ);
loadingStyleList.addChangeHandler(handlerJ);
handlerJ.addCallbackElement(containerGrid);
app.add(containerGrid);
app.add(tenPalletPanel);
tenPalletPanel.add(tenPalletLabel);
app.add(twentyPalletPanel);
twentyPalletPanel.add(twentyPalletLabel);
app.add(loadingNotePanel);
loadingNotePanel.add(loadingNoteLabel);
return app;
}
function palletChangeMe(e){
var app = UiApp.getActiveApplication();
if (e.parameter.containerSizeList == "40ft Long" && e.parameter.loadingStyleList == "On Pallets"){
app.getElementById('tenPalletPanel').setVisible(false);
app.getElementById('twentyPalletPanel').setVisible(true);
app.getElementById('loadingNotePanel').setVisible(false);
}
return app;
}
回答by antyrat
Instead of:
代替:
if (e.parameter.containerSizeList == "20ft Long"){
and if (e.parameter.loadingStyleList == "On Pallets"){
Should be:
应该:
if (e.parameter.containerSizeList == "20ft Long" && e.parameter.loadingStyleList == "On Pallets"){
Note: &&means logical AND. Read moreabout logical operators at MDN.
注:&&表示逻辑与。在 MDN阅读更多关于逻辑运算符的信息。
and you need to remove last }in each if statement, so final code would be like:
并且您需要删除}每个 if 语句中的 last ,因此最终代码将如下所示:
if (e.parameter.containerSizeList == "20ft Long" && e.parameter.loadingStyleList == "On Pallets"){
app.getElementById('tenPalletPanel').setVisible(true);
app.getElementById('twentyPalletPanel').setVisible(false);
}
if (e.parameter.containerSizeList == "40ft Long" && e.parameter.loadingStyleList == "On Pallets"){
app.getElementById('tenPalletPanel').setVisible(false);
app.getElementById('twentyPalletPanel').setVisible(true);
}

