删除“;选择“;从下拉菜单的选项中选择

Remove "selected" from an option of a dropdown

本文关键字:选择 选项 删除 下拉菜单      更新时间:2023-09-26

我正在处理一个表单。我的一位同事使用了are_you_sure.js,它在保存表单之前确认离开。

现在的问题是,如果我有一个下拉列表,比如这个

<script type="text/javascript">
function get_cpc(cst_type)
 {
    if(cst_type==0 || cst_type==1)
    {
      $("#camp_cpc").show();
      $("#camp_cpc").val("'.(!empty( $html['camp_cpc'] )?(double)$html['camp_cpc']:'').'");
    }
    else
    {
      $("#camp_cpc").hide();
      $("#camp_cpc").val("0");
    }
}
</script>

<select name="cost_type" id="cost_type" onchange="get_cpc(this.value);" class="ultra-select">
     <option value="0">CPC</option>
     <option value="1" selected="selected">CPA</option>
     <option value="2">Do Not Track</option>
</select>

当我从未选择的选项切换到选择的选项时,状态的改变会花费太多时间

这意味着,如果我从CPA中选择CPC/Do Not Track,那么下拉菜单会很快工作。但如果我从CPC/Do Not Track中选择CPA,那么状态更改几乎需要4秒。。

这是由于jquery.are-you-sure.js。所以,我需要从下拉列表中删除select。我怎样才能做到这一点?

我把这个代码$("select option").prop("selected", false);但它甚至不允许我选择任何其他选项。

我不确定你的意思,但你能共享are_you_sure.js文件吗??

此外,我已经更改了您的代码,也许这会有所帮助,而且这是一种更好的方法。因为使用onchange()不是一种好的做法,所以从您的html中删除onchange并执行此操作,链接:http://jsfiddle.net/hg5nz1w6/1/

js:

$(document).ready(function(){
    $('#cost_type').on('change', function(){
        var cst_type = $(this).val();
        if(cst_type==0 || cst_type==1)
        {
          $("#camp_cpc").val("'.(!empty( $html['camp_cpc'] )?(double)$html['camp_cpc']:'').'");
          $("#camp_cpc").show();
        }
        else
        {
          $("#camp_cpc").hide();
          $("#camp_cpc").val("0");
        }
    });
});

html:

<select name="cost_type" id="cost_type" class="ultra-select">
     <option value="0">CPC</option>
     <option value="1" selected="selected">CPA</option>
     <option value="2">Do Not Track</option>
</select>

下面您可以看到一些删除所选内容的示例:

document.getElementById('myselect').selectedIndex = -1;

您可以取消选择所有选项:

$("select").val([]);

$("select option").prop("selected", false);

希望有帮助!