Google App Script - 在输入文本框中输入密钥 - 如何捕获或禁用?

时间:2017-08-14 21:07:36

标签: javascript google-apps-script

我有一个通过Google应用脚本发布为网络应用的html页面。在页面上是一个输入框(文本框),用户键入要搜索的数字。如果他们点击了搜索'框旁边的按钮,它工作正常。如果他们输入了号码,然后按'输入'在键盘上,它会引发400错误('在此服务器上找不到请求的URL。')。

输入区号:

<input type="text" id="claimSearchBox" class="form-control"  placeholder="Search" />
<input type="button" id="btnsearchClaims" class="btn-md btn-success" onclick="getOrders" value="Search for a Claim"  />

的javascript: (这适用于按钮)

document.getElementById("btnsearchClaims").addEventListener("click", getOrders);

(这对输入框不起作用)

document.getElementById("claimSearchBox").addEventListener("keyup", function(event) {
event.preventDefault();
console.log('event:  ' + event.keyCode);
if (event.keyCode == 13) {
  console.log('correct key');
  getOrders();
}
});

我也尝试了这个,它显示了按下了哪些键,但是一旦按下回车键,它就会转到400错误。

$(document).ready(function(){
  $("claimSearchBox").keyup(function(e){
  console.log(e.keycode);
    console.log("worked");

  });
});

有什么建议吗?有没有办法禁用&#39;输入&#39;如果我无法将其重定向到getOrders()?

**编辑添加...如果我没有为输入框编程并且用户按下回车 - 它会转到错误(页面为空白 - 错误显示在控制台中)。

***发现问题:结果是这个输入框是表单上唯一的输入框的问题。当用户点击进入时,它会自动提交表单!我在这里找到了问题/解决方案:Why does forms with single input field submit upon pressing enter key in input

1 个答案:

答案 0 :(得分:0)

这可以帮助您进一步了解代码。

我看到你正在调用jQuery。

$(document).ready(function(){

您能确认您正在显示的页面是否正确加载jQuery?

你的HTML应该有这样的东西。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

如果您使用调试器并成功输入,那么您已经加载了jQuery。

使用jQuery,您可以简化事件处理。

替换

document.getElementById("btnsearchClaims").addEventListener("click", getOrders);

使用

$("#btnsearchClaims").on("click", getOrders);

替换

document.getElementById("claimSearchBox").addEventListener("keyup", 
function(event) {

使用

$("#claimSearchBox").on("keyup", function(event)...