我有一个通过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
答案 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)...