jquery - jQuery - 如何在 Ajax 表单提交中添加“或”
问题描述
我正在尝试在 ajax 表单上添加一个功能,以便能够同时使用Submit Button
和Ctrl+Enter
功能。
它的两个分开的形式,它应该是原样,但必须有两个事件可用于提交 ajax 表单。
这是我到目前为止所做的:
$(document).ready(function() {
$(".form").on('submit keydown',(function(e) {
e.preventDefault();
$.ajax({
success: function(data) {
$('.result').html('Ajax Submit');
},
});
}));
});
<input class="search1">
<form class="form">
<button>Submit</button>
</form>
<div class="result"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
解决方案
鉴于在问题下的评论中您声明input
不会将其放置在form
元素内(尽管它确实应该放置,因为它对可访问性更好,而且它会在不需要 JS 干预的情况下为您解决问题),您可以通过将keyup
事件处理程序附加到input
元素并侦听CTRL+Return和弦来实现您的目标。
另请注意,您的 AJAX 请求至少还需要包含url
and data
。
jQuery($ => {
let $form = $('.form');
let $search = $('.search1').on('keyup', e => {
if (e.ctrlKey && e.keyCode === 13)
$form.submit();
});
$form.on('submit', e => {
e.preventDefault();
console.log('making ajax request...');
/*
$.ajax({
url: '/search',
data: {
term: $search.val()
},
success: function(data) {
$('.result').html('Ajax Submit');
}
});
*/
});
});
<input class="search1">
<form class="form">
<button>Submit</button>
</form>
<div class="result"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
推荐阅读
- autodesk-forge - 如何将 MiniMap3DExtension 与 IFC 文件一起使用?
- git - 如何在 git 子模块中配置 tsconfig 文件?#forTsChecker
- android - 如何在android中的视图上添加玻璃效果?
- apache-spark - SAP DBTech JDBC:[288](在 22):不能使用重复的表名:
- asciidoc - 在选中的父项下缩进子项?
- sql - datepart 函数不考虑更新日期
- django-models - 尝试使用 abstract=True 在 django_cassandra_engine 中定义 BaseModel 时抛出所需的主键错误
- javascript - graphql 模拟订阅,更新问题
- java - Quartz:在 PostgreSQL 数据库中将 lockOnInsert 设置为 false 究竟意味着什么?
- vue.js - 如何使用 vue.config.js 将 vue js 项目部署到子目录