我有一个特定 ID 号的 html 输入。如果用户输入 ID 号,它将在 google 脚本中检查该 ID 号是否已存在。如果已经存在,则会弹出一条消息,其中包含 ID 号。
这是我的 Google 表格 ID 列表的屏幕截图:
我的 html 代码:
<div class="row">
<!-- ID NUMBER -->
<div class="input-field col s4">
<input id="idnum" type="text" class="validate">
<label for="idnum">Identification Number</label>
</div> <!-- CLOSE ROLL NUMBER FIELD -->
</div> <!-- CLOSE ROW -->
对于 JavaScript:
<script>
document.getElementById("idnum").addEventListener("input",getID);
function getID(){
var IdNum = document.getElementById("idnum").value;
if(IdNum.length === 5){
google.script.run.withSuccessHandler(updateID).getID(IdNum);
}
}
function updateID(idn){
alert("ID Number: " + idn + " already exist.");
//document.getElementById("idnum").value = "";
}
</script>
对于谷歌脚本:
function getID(IdNum){
var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Test_Data");
var data = ws.getRange(1, 1, ws.getLastRow(), 1).getValues();
var IdList = data.map(function (r){return r[0];})
var Idpos = IdList.indexOf(IdNum);
if (Idpos > -1)
{
return IdList[Idpos];
}
}
我无法显示包含在 html 中输入的 ID 号的弹出消息。它总是会说“未定义”。
由于我将 document.getElementById("idnum").value = "";
放入 JavaScript 中,它总是删除输入。我需要的是,如果 hmtl 中输入的 ID 号存在,它会弹出一条消息,说明 ID 存在,但如果不存在,它将保留输入值而不是删除它。
例如,如果我在html中输入“12345”,则会弹出一条消息“ID号:12345已存在”。然后它将删除输入值。如果我输入尚未在工作表中的“55555”,则不会弹出消息,并且该值不会被删除或设置为空白。预先非常感谢您的帮助。
最佳答案
我将我的谷歌脚本更改为:
function getID(IdNum){
var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Test_Data");
var data = ws.getRange(1, 1, ws.getLastRow(), 1).getValues();
var dJoin = data.join().split(",");
var myId = dJoin.indexOf(IdNum);
if (myId > -1){
return IdNum;
} else {
return "unavailable";
}
}
我的 JavaScript 为:
<script>
document.getElementById("idnum").addEventListener("input",getID);
function getID(){
var IdNum = document.getElementById("idnum").value;
if(IdNum.length === 5){
google.script.run.withSuccessHandler(updateID).getID(IdNum);
}
}
function updateID(idn, IdNum){
var IdNum = document.getElementById("idnum").value;
if (idn === IdNum) {
alert("ID Number: " + idn + " already exist.");
document.getElementById("idnum").value = "";
}
}
</script>
关于javascript - 检查是否有重复值然后弹出一条消息谷歌脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57193139/