希望有人能帮助我。
让我们从我对 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
引导程序放在文件开头的脚本之前。
我希望有人可以帮助我或告诉我要检查的内容! 谢谢!
喜欢我的问题是什么。 在代码的末尾,我有一个函数可以拖放页面的某些元素(例如弹出窗口本身)。在这个函数中有 preventDefault() 方法。这使我的下拉菜单无法正常工作。 通过评论/删除下拉菜单现在可以正常工作