javascript - 检查是否有重复值然后弹出一条消息谷歌脚本

标签 javascript google-apps-script

我有一个特定 ID 号的 html 输入。如果用户输入 ID 号,它将在 google 脚本中检查该 ID 号是否已存在。如果已经存在,则会弹出一条消息,其中包含 ID 号。

这是 ID 的 html 输入: enter image description here

这是我的 Google 表格 ID 列表的屏幕截图:

enter image description here

我的 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 号的弹出消息。它总是会说“未定义”。

enter image description here

由于我将 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/

相关文章:

javascript - 带有 ExtJS 4.1 的 Google Apps 脚本

Javascript - 列出网络浏览器正在下载的文件

javascript - 检查用户现在是否触摸屏幕(JS)

javascript - 是否可以在 typescript 中创建一个命名为 "fat-arrow"的 lambda?

javascript - 从 Google 电子表格中的列填充 HTML 下拉菜单

javascript - 如何返回列值?

mysql - 如何从 google apps 脚本 .gs 返回 jdbc ResultSet 到 html 文件

javascript - 选择下拉适合当前选择的宽度

javascript - RegEx - 匹配事件的 LIFO 缓冲区

google-apps-script - 如何在任何/所有电子表格上使用 Google Apps 脚本?