Javascript 如何通过一个文本框中的输入从同一行的另一列获取值
我有一个带有两个文本框的html文件 1.订单 1.金额 当我在“订单”文本框中键入一个数字时,我需要它 我将从Google工作表中与此顺序匹配的同一行的另一列中获取值 这是我的代码。gs代码不起作用Javascript 如何通过一个文本框中的输入从同一行的另一列获取值,javascript,google-apps-script,google-sheets,web-applications,client-server,Javascript,Google Apps Script,Google Sheets,Web Applications,Client Server,我有一个带有两个文本框的html文件 1.订单 1.金额 当我在“订单”文本框中键入一个数字时,我需要它 我将从Google工作表中与此顺序匹配的同一行的另一列中获取值 这是我的代码。gs代码不起作用 function doGet(e) { return HtmlService.createHtmlOutputFromFile('page'); } function getCost(oneCode){ var url = "https://docs.g
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('page');
}
function getCost(oneCode){
var url = "https://docs.google.com/spreadsheets/d/1333t7lvECnmOcCnTE6gnn_RN1wrPckWpIETiPUjkUnU/edit#gid=0";
var ss = SpreadsheetApp.openUrl(url);
var ws = ss.getSheetByName("Sheet1");
var data = ws.getRange(1,1,ws.getLastRow(),2).getValues();
var ordersList = data.map(function(r){ return r[0]; });
var amountList = data.map(function(r){ return r[1]; });
var position = ordersLis.indexOf(oneCode);
if(position > -1){
return amountList[position];
} else {
return "not found";
}
}
========================
这是html代码
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<script>
document.getElementById("one").addEventlistener("input",doThis);
function doThis(){
var oneCode = document.getElementById("one").value;
google.script.run.withSuccessHandler(updateAmount).getCost(oneCode);
}
function updateAmount(cost){
document.getElementById("two").value = cost;
}
</script>
<body>
<div>
<input id="one" type="text">
<label for="one">orders</label>
</div>
<div>
<input disabled id="two" type="text">
<label for="two">amount</label>
</div>
</body>
</html>
document.getElementById(“一”).addEventlistener(“输入”,doThis);
函数doThis(){
var oneCode=document.getElementById(“一”)值;
google.script.run.withSuccessHandler(updateAmount).getCost(oneCode);
}
函数更新计数(成本){
document.getElementById(“两个”)。值=成本;
}
命令
数量
我想提出以下修改 修改点:
- 在HTML和Javascript方面
是addEventlistener
addEventlistener
document.addEventListener("DOMContentLoaded", function(){ document.getElementById("one").addEventListener("input",doThis); });
- 使用脚本时,请修改
document.getElementById(“一”).addEventListener(“输入”,doThis)代码>如下所示。因为当未使用
时,在document.addEventListener(“DOMContentLoaded”,function)
处会发生错误addEventListener
document.addEventListener("DOMContentLoaded", function(){ document.getElementById("one").addEventListener("input",doThis); });
- 当
用作事件类型时,当输入的文本为input
时,发送130
、1
和13
。这样,130
将运行3次。所以我认为google.script.run.withSuccessHandler(updateAmount).getCost(oneCode)
可能适合这种情况change
- 在谷歌应用程序脚本端
- 在
var ss=SpreadsheetApp.openUrl(url)代码>,
是openUrl
openByUrl
- 我认为在您的脚本中,
var position=ordersLis.indexOf(oneCode)代码>是
var position=ordersList.indexOf(oneCode)代码>
- 在脚本中,
的getCost(oneCode)
是字符串类型oneCode
- 在
- 从您的脚本来看,您似乎正在使用Web应用程序使用此脚本时,请将上述脚本复制并粘贴到脚本编辑器中,并将Web应用重新部署为新版本。这样,最新的脚本就会反映到Web应用程序中。请注意这一点。
- 打开Web应用时,请在输入框中输入值,然后按enter键或从输入框中移除焦点。通过此操作,
被执行,并且addEventListener(“change”,doThis)
被运行doThis
- 在HTML和Javascript方面
是addEventlistener
addEventlistener
document.addEventListener("DOMContentLoaded", function(){ document.getElementById("one").addEventListener("input",doThis); });
- 使用脚本时,请修改
document.getElementById(“一”).addEventListener(“输入”,doThis)代码>如下所示。因为当未使用
时,在document.addEventListener(“DOMContentLoaded”,function)
处会发生错误addEventListener
document.addEventListener("DOMContentLoaded", function(){ document.getElementById("one").addEventListener("input",doThis); });
- 当
用作事件类型时,当输入的文本为input
时,发送130
、1
和13
。这样,130
将运行3次。所以我认为google.script.run.withSuccessHandler(updateAmount).getCost(oneCode)
可能适合这种情况change
- 在谷歌应用程序脚本端
- 在
var ss=SpreadsheetApp.openUrl(url)代码>,
是openUrl
openByUrl
- 我认为在您的脚本中,
var position=ordersLis.indexOf(oneCode)代码>是
var position=ordersList.indexOf(oneCode)代码>
- 在脚本中,
的getCost(oneCode)
是字符串类型oneCode
- 在
- 从您的脚本来看,您似乎正在使用Web应用程序使用此脚本时,请将上述脚本复制并粘贴到脚本编辑器中,并将Web应用重新部署为新版本。这样,最新的脚本就会反映到Web应用程序中。请注意这一点。
- 打开Web应用时,请在输入框中输入值,然后按enter键或从输入框中移除焦点。通过此操作,
被执行,并且addEventListener(“change”,doThis)
被运行doThis
- 我想提出以下修改
修改点: