为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery成功后刷新selectpicker选项不起作用

jQuery成功后刷新selectpicker选项不起作用

牛魔王的故事 2022-10-21 14:56:59
我试图在执行另一个 jQuery 后刷新选择。我首先使用 cURL 创建选择选项,它会生成这样的代码。$json_dropdown = '[{"id":"1475471145964056","name":"Option1"},{"id":"935675176941821","name":"Option2"},{"id":"555309881810660","name":"Option3"},{"id":"304608093904515","name":"Option4"}]';然后我有看起来像 htis 的 HTML<h2>Delete topic</h2><div class="form-group"><select class="form-control selectpicker show-tick" name="topic" id="topic_del" data-show-subtext="true" data-live-search="true"  showIcon="true" data-style="btn-default" data-size="8" data-width="100%" title="Choose a TOPIC to DELETE..." required></select></div>    <div class="form-group">    <button type="button" class="btn btn-danger" id="delete_topic">Delete Topic</button></span></div><div id="results_del"></div>我正在使用此 jquery 将选项加载到选择中$('#topic_del').click(function(){    var a = {Topic:<?echo $json_dropdown; ?>}    $.each(a.Topic, function topics (key, value) {        $("#topic_del").append($('<option></option>').attr('data-tokens',value.id).val(value.id).html(value.name));        //$("#topic").attr('data-tokens',value.id);    });});哪个工作正常。然后我有另一个脚本来使用 ajax 从选择中删除一个选项// Delete Topic$('#delete_topic').click(function(){    // bind 'myForm' and provide a simple callback function       $(this).prop("disabled", true);      // add spinner to button    $(this).html(        `<i class="fa fa-spinner fa-spin"></i> Deleting Topic`      );    $(this).removeClass("btn-danger");    $(this).addClass("btn-warning");        var type = $("#type").val();    var action = $("#action_del").val();    var account = $("#account").val();    var topic = $("#topic_del").val();       return false;});在这个脚本中,我想要实现的是在删除脚本成功后刷新选项,使用我最初创建选项时使用的相同脚本。似乎我做错了什么,但我不知道是什么。更新刚刚意识到,如果我删除selectpicker并尝试删除我刚刚从选择中删除的选项,这样$("#topic_del option[value='" +topic+ "']").remove();它就会成功。但是,如果我放回去,selectpicker它不会删除该选项。可能是选择器不允许这样做吗?
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

多亏了这个带有添加或删除值的线程 Selectpicker,我才能够实现该功能

通过在成功中添加这两行

$('.selectpicker option:selected').remove();
$('.selectpicker').selectpicker('refresh');


查看完整回答
反对 回复 2022-10-21
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

还有一件事。似乎$('.selectpicker').selectpicker('refresh');只有在此之前有任何其他操作时才会执行,例如$('.selectpicker option:selected').remove();



查看完整回答
反对 回复 2022-10-21
  • 2 回答
  • 0 关注
  • 298 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信