javascript - 尝试提交一个 Javascript 表单,然后提交两个表单
问题描述
我有两个具有不同 ID 的独立表单,但是当我尝试提交其中一个时,它们都同时提交。也许JS代码可以简化为两种形式的列数相同?
<form method="post" action="#" id="formMor" class="Morning">
<table id="formMor" class="Morning">
<button id="save" class="Morning1" type="submit">Save</button>
</form>
<form method="post" action="#" id="formEven" class="Evening">
<table id="formEven" class="Evening">
</table>
<button id="save" class="Evening1" type="submit">Save</button>
</form>
和 script.js
'use strict';
$(document).on("formEven").submit(function(event) {
event.preventDefault();
var routineType = $("#formEven").attr('class');
var newFormData = [];
jQuery('#formEven tr:not(:first)').each(function(i) {
var tb = jQuery(this);
var obj = {};
obj['Nr.'] = i;
tb.find('input, textarea, select').each(function() {
obj[this.name] = this.value;
});
newFormData.push(obj);
});
console.log(newFormData);
});
$(document).on("formMor").submit(function(event) {
event.preventDefault();
var routineType = $("#formMor").attr('class');
var newFormData = [];
jQuery('#formMor tr:not(:first)').each(function(i) {
var tb = jQuery(this);
var obj = {};
obj['Nr.'] = i;
tb.find('input, textarea, select').each(function() {
obj[this.name] = this.value;
});
newFormData.push(obj);
});
console.log(newFormData);
});
解决方案
您没有正确设置提交处理程序,on 的原型是.on( events [, selector ] [, data ], handler )
您传递了一个 id。
由于您选择了文档并使用了.on()
我将假设您想要使用事件委托。此外,您的 HTML 中有重复的 id,每个 id 应该是唯一的。
$(document).on("submit", "#formEven", function(event) {
event.preventDefault();
var routineType = $("#formEven").attr('class');
var newFormData = [];
jQuery('#formEven tr:not(:first)').each(function(i) {
var tb = jQuery(this);
var obj = {};
obj['Nr.'] = i;
tb.find('input, textarea, select').each(function() {
obj[this.name] = this.value;
});
newFormData.push(obj);
});
console.log(newFormData);
});
$(document).on("submit", "#formMor", function(event) {
event.preventDefault();
var routineType = $("#formMor").attr('class');
var newFormData = [];
jQuery('#formMor tr:not(:first)').each(function(i) {
var tb = jQuery(this);
var obj = {};
obj['Nr.'] = i;
tb.find('input, textarea, select').each(function() {
obj[this.name] = this.value;
});
newFormData.push(obj);
});
console.log(newFormData);
});
<form method="post" action="#" id="formMor" class="Morning">
<table id="formMor-table" class="Morning">
<button id="save-formMor" class="Morning1" type="submit">Save</button>
</form>
<form method="post" action="#" id="formEven" class="Evening">
<table id="formEven-table" class="Evening">
</table>
<button id="save-formEven" class="Evening1" type="submit">Save</button>
</form>
推荐阅读
- javascript - 在materialUI TextField中输入文本时如何避免空格?
- api - Deezer API 重定向在 Localhost 上不起作用
- arrays - 范围数组存储相同的范围。为什么?
- reporting-services - 矩阵中的条件格式
- sortablejs - “错误:不支持组件内的转换组”使用 Element UI 和 Vue Draggable
- .net - MVC + EF:通过下拉选择创建具有相关属性的实体时出现问题
- lua - 改变身体上的重心 Corona SDK
- java - 5.2.0 版本的 Apache 元模型失败,需要依赖 org.postgresql.util 包
- c# - 向 PE 可执行文件添加指令
- python - 是否可以让神经网络根据分类文档对实体进行分类?