Javascript 使用jQuery筛选和删除没有数据的输入
我有一张销售订单的表格。该表单显示可选择的所有可用产品。 每行必须输入数量和ID。ID是隐藏的 我能够过滤数量输入,因为任何未选择的项目都没有值。 我的问题是,即使数量中没有值,ID也会有一个值 我想做的是完全删除这一行,这样如果qty值没有值,也可以删除IDJavascript 使用jQuery筛选和删除没有数据的输入,javascript,jquery,Javascript,Jquery,我有一张销售订单的表格。该表单显示可选择的所有可用产品。 每行必须输入数量和ID。ID是隐藏的 我能够过滤数量输入,因为任何未选择的项目都没有值。 我的问题是,即使数量中没有值,ID也会有一个值 我想做的是完全删除这一行,这样如果qty值没有值,也可以删除ID 数量输入的名称为lineItem[i][qty]//i,为每行编制索引 id的名称为lineItem[i][product]//i为每行编制索引 JavaScript: // This is just the function to
- 数量输入的名称为lineItem[i][qty]//i,为每行编制索引
- id的名称为lineItem[i][product]//i为每行编制索引
// This is just the function to show you how I have the input structured
var showProduct = function (result) {
//console.log(result.id + " " + result.product );
var last = $('.display:last');
$(".display ").append("<tr> <td class = \"hide\">" + result.id + " </td> <td> " + result.productName + " </td> <td >"
+ "<input type = \"number\" min =\"0\" class = \"qty\" >
</input> </td> <td class = \"hide\"> " + "<input class = \"id\" value = \"" + result.productName +
"\"></td> </tr>"
);
var input = $(last.find('input.qty')[i]);
input.attr("name", "lineItem[" + i + "][qty]");
var input2 = $(last.find('input.id')[i]);
input2.attr("name", "lineItem[" + i + "][product]");
//console.log(i);
i++
};
谢谢你能提供的帮助 您正在事件处理程序中附加事件侦听器。我不确定这是不是有意的。我认为你想要实现的是:
$('form').submit(function() {
// filter out each "tr" that does not have a qty value
$('.display tr').filter(function() {
return !$(this).find('input.qty').val();
}).remove();
});
如果您在提交表单后不需要重复使用表单,我喜欢这种方法$(this).find('.display').find('.tr').filter(function(){…),因为
find()
似乎比复合选择器更快。您的HTML看起来像什么?您似乎在说“当我单击.form2
时,定义在表单
的提交事件上运行的函数。”(但实际上并没有执行表单的提交事件)。
$('form').submit(function() {
// filter out each "tr" that does not have a qty value
$('.display tr').filter(function() {
return !$(this).find('input.qty').val();
}).remove();
});