Javascript jQuery根据下拉列表中的选择将行移动到另一个表
我有一个包含多个表的页面(每个“活动类型”一个表)。它们的ID是“活动类型”。每个表中的每一行都有一个带有下拉列表的单元格,允许用户选择要将该行移动到的新表的“活动类型” 下面的js代码确实将一行从其原始表移动到下拉菜单中所选“活动类型”的表中。但是,移动行后,下拉列表中的选定值仍保留为旧的“活动类型”。如何将下拉列表的值设置为该行现在所属的新“活动类型”Javascript jQuery根据下拉列表中的选择将行移动到另一个表,javascript,jquery,html,Javascript,Jquery,Html,我有一个包含多个表的页面(每个“活动类型”一个表)。它们的ID是“活动类型”。每个表中的每一行都有一个带有下拉列表的单元格,允许用户选择要将该行移动到的新表的“活动类型” 下面的js代码确实将一行从其原始表移动到下拉菜单中所选“活动类型”的表中。但是,移动行后,下拉列表中的选定值仍保留为旧的“活动类型”。如何将下拉列表的值设置为该行现在所属的新“活动类型” $('.override-activity').change(function () { // get selected Activ
$('.override-activity').change(function () {
// get selected Activity Type
var activityType = $("option:selected", this).text().replace(/\s+/g, '');
// get selected row
var tr = $(this).closest("tr").remove().clone();
// insert selected row into new Activity Type table
$("#" + activityType).find("table").append(tr);
});
您可以在克隆
tr
之后和附加之前执行类似操作吗。
tr.find('.override activity').val(activityType)
您可以在克隆tr之后和附加它之前执行类似操作吗。
tr.find('.override activity').val(activityType)
之所以发生这种情况,是因为select上的“更改”事件从未完成,因为您正在从DOM中删除它
你可以做两件事:
使用“选择”的“启用模糊”
在附加TR之前,可以将select的值设置为:
$(document).on('change', '.override-activity', function () {
// get selected Activity Type
var activityType = $("option:selected", this).text().replace(/\s+/g, '');
// Get the original selected value
var selected = $(this).val();
// get selected row
var tr = $(this).closest("tr").remove().clone();
// Reset the value
$('.override-activity', tr).val(selected);
// insert selected row into new Activity Type table
$("#" + activityType).find("table").append(tr);
});
之所以发生这种情况,是因为select上的“更改”事件从未完成,因为您正在从DOM中删除它
你可以做两件事:
使用“选择”的“启用模糊”
在附加TR之前,可以将select的值设置为:
$(document).on('change', '.override-activity', function () {
// get selected Activity Type
var activityType = $("option:selected", this).text().replace(/\s+/g, '');
// Get the original selected value
var selected = $(this).val();
// get selected row
var tr = $(this).closest("tr").remove().clone();
// Reset the value
$('.override-activity', tr).val(selected);
// insert selected row into new Activity Type table
$("#" + activityType).find("table").append(tr);
});
谢谢,这个有用。但是,一旦行移动到新表,并且在下拉列表中重新选择了正确的活动类型,如果现在尝试选择其他选项,则不会发生任何事情。这是因为DOM现在处于某种“分离”状态吗?我可以继续移动行吗?Exactyl,我已经更改了我的答案,以建议更好的事件绑定方法。谢谢,这很有效。但是,一旦行移动到新表,并且在下拉列表中重新选择了正确的活动类型,如果现在尝试选择其他选项,则不会发生任何事情。这是因为DOM现在处于某种“分离”状态吗?我可以继续移动行吗?Exactyl,我已经更改了我的答案,以建议更好的事件绑定方法。