2012-09-03 140 views
1

你好我是新的谷歌應用腳​​本,我會比較,我把它放在文本框中的值與Excel表中的值。我的Excel工作表的值是正確的顯示,並且創建了正確的文本框(兩個是因爲Excel表中有兩個條目)。我會驗證這一點:如果我放入我的文本框大於Excel表格的值,那麼錯誤否則可以。我想使用提交按鈕。我看到一個具有驗證電子郵件功能的示例,但我無法將其轉換爲我的示例。
當我德巴功能確認庫存(E)我得到的參數」未定義。 請幫幫我。使用在谷歌應用程序腳本中的文本框驗證

function doGet() { 
var user = Session.getUser().getUserLoginId(); 
var excel = SpreadsheetApp.openById("0Alg06LrHGRkddDJyMUh5bGRsZnhKQkpqYjBCN0d0X2c"); 
var raw = excel.getSheets()[0]; 

var app = UiApp.createApplication(); 
var stockLabel = app.createLabel('Introduza a Quantidade de Stock pretendida'); 
var inputBox = app.createTextBox().setId('stockBox').setName('myStock'); 
var submitButton = app.createButton('Validate'); 
var infoLabel = app.createLabel('Stock é Valido').setVisible(false).setId('info'); 
var panel = app.createVerticalPanel(); 

var list = raw.getRange("A1:A2").getValues(); 

for(var i = 0; i < list.length; i++) 
{ 
//if (list[i] == user) 

var cliente = raw.getSheetValues(i+1,2,1,1); 
app.add(app.createLabel("Stock: "+ list[i])); 
app.add(app.createTextBox()); 

//raw.getSheetValues(startRow, startColumn, numRows, numColumns) 

} 
panel.add(stockLabel) 
.add(inputBox) 
.add(infoLabel) 
.add(submitButton); 

//Add the panel to the application 
//Create Click handlet and add to the submit button 
var handler = app.createServerClickHandler('validateStock'); 
handler.addCallbackElement(panel); 
submitButton.addClickHandler(handler); 

panel.add(stockLabel).add(inputBox).add(submitButton); 
app.add(panel); 
return app; 
} 

//Function to validate stock and display the response 
function validateStock(e){ 
var emailPattern = /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; 
var excel = SpreadsheetApp.openById("0Alg06LrHGRkddDJyMUh5bGRsZnhKQkpqYjBCN0d0X2c"); 
var raw = excel.getSheets()[0]; 
var app = UiApp.getActiveApplication(); 
var list = raw.getRange("A1:A2").getValues(); 
stock = e.parameter.myStock; 
Logger.log(stock); 

if(emailPattern.test(stock) == false) 

app.getElementById('info').setText("Invalid Email Address").setStyleAttribute("color", "#F00").setVisible(true); 
    else 
    app.getElementById('info').setText("Valid Email Address").setStyleAttribute('color', '#339900').setVisible(true); 
return app; 
} 
    else 
    app.getElementById('info').setText("Valid Email Address").setStyleAttribute('color', '#339900').setVisible(true); 
return app; 
} 

回答

0

調試記錄器。你不能調試確認庫存與調試器,因爲它是一個回調。(我最後一次檢查,調試器不回調函數)

要使用調試工作,你可以添加一個功能有點像這樣:

function debugValidateStock(e){ 
var e.parameter.myStock = "test"; 
validateStock(e); 
} 
0

1 - 你必須初始化爲可變能夠STOCK:

stock = e.parameter.myStock;- >var stock = e.parameter.myStock

2 - 要在不考慮參數e.parameter.myStock和回調函數運行的程序,你必須在變形點焊的開始了var myStock功能確認庫存

var stock = "*WHAT_YOU_EXPECT*" ;代替stock = e.parameter.myStock;

相關問題