Javascript 按enter键提交表格
菜鸟问题。我有一个带有输入框和提交按钮的简单表单。当点击按钮时,它会触发一些php来搜索输入项并输出任何结果。我希望能够在键入搜索词后按enter键,而不必单击按钮 我知道这是一件基本的事情,我在这里找到了解决方案,但当我尝试在代码中添加一个keyup事件监听器时,它似乎没有改变任何东西,我也不清楚为什么-无论是否按js键enter,似乎都会刷新页面?我猜问题是我不想“提交”表格,我想做其他事情 代码如下:Javascript 按enter键提交表格,javascript,Javascript,菜鸟问题。我有一个带有输入框和提交按钮的简单表单。当点击按钮时,它会触发一些php来搜索输入项并输出任何结果。我希望能够在键入搜索词后按enter键,而不必单击按钮 我知道这是一件基本的事情,我在这里找到了解决方案,但当我尝试在代码中添加一个keyup事件监听器时,它似乎没有改变任何东西,我也不清楚为什么-无论是否按js键enter,似乎都会刷新页面?我猜问题是我不想“提交”表格,我想做其他事情 代码如下: <?php if (isset($_POST['submit'])) { *R
<?php
if (isset($_POST['submit'])) {
*Removed the search php because I assume it is not relevant to the question*
?>
<div class="site-section bg-dark" id="start">
<div style="padding-left: 20px">
<h3 class="text-white">Find book based on title</h3>
<div class="col-md-6">
<div class=" mb-4">
<div class="form-group">
<form method="post">
<label for="title">Title</label>
<input type="text" id="title" name="title" class="form-control" placeholder="Title">
<p></p>
<button class="btn m-1 btn-secondary">
<input type="submit" id="submit" name="submit" value="View Results">
</button>
</form>
</div>
</div>
</div>
</div>
<script>
var input = document.getElementById("title");
input.addEventListener("keyup", function(event) {
if (event.keyCode === 13) {
event.preventDefault();
document.getElementById("submit").click();
}
});
</script>
*Results output here*
</div>
根据书名查找书籍
标题
var输入=document.getElementById(“标题”);
input.addEventListener(“键控”,函数(事件){
如果(event.keyCode===13){
event.preventDefault();
document.getElementById(“提交”)。单击();
}
});
*这里的结果输出*
非常感谢
编辑:
已解决,谢谢您的建议。事实证明,这只是Firefox中的一个问题,而不是Chrome,原因是:
<button class="btn m-1 btn-secondary">
<input type="submit" id="submit" name="submit" value="View Results">
</button>
input type=“submit”已经是一个按钮,将其环绕在另一个按钮上显然会导致浏览器出现一些混乱。您不必为此做任何事情。这是具有提交按钮的表单的默认功能。“当用户单击提交按钮(
或
)或在编辑表单中的字段(例如
)时,提交事件将触发。”在按钮上添加type=“submit”。@shashashank-这样做没有意义,这是默认设置。也不要嵌套按钮。感谢您的帮助@Ollie。我现在设法解决了这个问题。