下拉菜单不适用于 replaceWith() 和 appendTo()

问题描述 投票:0回答:1

希望有人能帮助我。

让我们从我对 php、js、jquery 等的经验很少的事实开始。 我正在开发一个小网络应用程序,用户在其中填写具有特定请求的表单,数据写入数据库,然后,经理从另一个具有管理员权限的网页,可以从 html 读取数据库中的数据桌子。 所有这一切都很好。 在此表的最后一列中有一个按钮,按下该按钮时,它会打开一个弹出窗口,其中包含有关请求的其他信息以及经理选择不同阶段的可能性(例如“进行中”,“完成”, “拒绝”)对于请求本身。 现在按钮和弹出窗口工作正常,但我无法使用于选择阶段的下拉菜单正常工作。

编辑:在尝试缩小问题范围时我发现了这个

我的弹出式创作的一部分:

 +'<form id="statoNewDiv" class="divPop2">\n'
  +'<div class="divPop" style="margin-bottom: -5%"><label for="statustomodify">New status:</label>\n'
  +'<select class="form-control Empty" name="statustomodify" id="statustomodify" required></select>\n'
etc

根据请求状态动态修改弹窗:

if (state_info == "Forwarded"){
    $('#statustomodify').replaceWith('<select class="form-control Empty" name="statustomodify" id="statustomodify" required></select>');
    $('<option selected id="defaultstate">New state...</option>').appendTo("#statustomodify");
    $('<option value="In progress" style="background-color: gold; font-weight: bold">In progress</option>').appendTo("#statustomodify");
    $('<option value="Done" style="background-color: green; color: white; font-weight: bold">Done</option>').appendTo("#statustomodify");
    $('<option value="Rejected" style="background-color: gray; color: white; font-weight: bold">Rejected</option>').appendTo("#statustomodify");
  }

如果我在弹出窗口中单击标签“新状态”,下拉菜单将成为焦点,我可以使用向上和向下箭头键更改状态。 但是当我点击下拉菜单本身时,它不起作用。 如果我更改标签的名称,即使单击“新状态”也不会出现任何内容。 因此,如果标签的名称和要在 jquery 上替换的 id 的名称匹配,函数本身就可以工作(即使不正确)。 问题似乎是 select 的 ID 似乎被完全忽略了。

如果我从“新状态...”中删除 appendTo,我会得到“进行中”(等等),但我总是无法选择它。 我试图在选项 value="Rejected" 之后移动 /select 但仍然没有。 我尝试在 appendTo() 之后使用 .first() 和 .last() (例如: .appendTo("#statustomodify").first() )但仍然没有。 我试过在外面使用 HTML 代码,它工作正常。

最后一件事,我用它作为引导程序:

https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css

我都试过了:

https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js
https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js

引导程序放在文件开头的脚本之前。

我希望有人可以帮助我或告诉我要检查的内容! 谢谢!

javascript html jquery replacewith
1个回答
0
投票

喜欢我的问题是什么。 在代码的末尾,我有一个函数可以拖放页面的某些元素(例如弹出窗口本身)。在这个函数中有 preventDefault() 方法。这使我的下拉菜单无法正常工作。 通过评论/删除下拉菜单现在可以正常工作

© www.soinside.com 2019 - 2024. All rights reserved.