从下拉列表的选项中删除“已选择”

时间:2015-03-30 08:57:26

标签: javascript jquery

我正在撰写表格。我的一位同事使用了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 option").prop("selected", false); 但它甚至没有让我选择任何其他选项。

1 个答案:

答案 0 :(得分:2)

我不确定你的意思是什么,但你能分享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);

希望这有帮助!