根据条件从选择列表中删除值

新手上路,请多包涵

我在页面中有以下内容

<select name="val" size="1" >
<option value="A">Apple</option>
<option value="C">Cars</option>
<option value="H">Honda</option>
<option value="F">Fiat</option>
<option value="I">Indigo</option>
</select>

如果某些条件为真,我想从我的选择中删除某些值。

例如

if(frm.product.value=="F"){
  // remove Apple and Cars from the select list
}

如何使用 javascript 执行此操作

原文由 Jacob 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 376
2 个回答

为 select 对象提供一个 id,如下所示:

 <select id="mySelect" name="val" size="1" >
    <option value="A">Apple</option>
    <option value="C">Cars</option>
    <option value="H">Honda</option>
    <option value="F">Fiat</option>
    <option value="I">Indigo</option>
</select>

你可以在纯 JavaScript 中做到这一点:

 var selectobject = document.getElementById("mySelect");
for (var i=0; i<selectobject.length; i++) {
    if (selectobject.options[i].value == 'A')
        selectobject.remove(i);
}

但是 - 正如其他答案所暗示的那样 - 使用 jQuery 或其他一些 JS 库要容易得多。

原文由 Andrew 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 HTML5 Native API 进行选择。获取选项并在删除函数中传递索引。

 var s = document.getElementById("ctl00_ContentPlaceHolder1_ddlxml")
var options = s.options
for(var i=0; i<options.length; i++) {
    if(options[i].text==='UP3151005_180822FTO_1055352') s.remove(i);
    if(options[i].text==='UP3151005_180822FTO_1055371') s.remove(i);
    if(options[i].text==='UP3151005_180822FTO_1055560') s.remove(i);
    if(options[i].text==='UP3151005_180822FTO_1055617') s.remove(i);
}

原文由 Sorter 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题