1

我有一种情况,在某些情况下,下拉列表可以包含一个不可选择的默认值,一旦另一个值被更改,默认值就不再是一个选项。据我所知,这个概念本身并不存在,所以我试图用 jQuery 对其进行编码。所有具有此条件的 DropDownLists 都分配了一个类“valueSkippedHyperSwap”。需要删除的值是插入符号“^”。这是我所拥有的,但不起作用:

    $('.valueSkippedHyperSwap').change(function () {
        var node = $(this).has("value='^'");
        node.remove();
    });

根据人们的要求,这是 HTML,尽管我无法为我的世界弄清楚如何将其放入代码块中:

<!-- snip -->

<div class="questionItem">
<!-- snip -->
<select class="valueSkippedHyperSwap" id="answers_2__Answer" name="answers[2].Answer">
<option selected="selected" value="^">(^) Blank (skip pattern)</option>
<option value="0">(0) No</option>
<option value="1">(1) Yes</option>
<option value="-">(-) Not assessed</option>
</select></div>

<div class="questionItem">
<!-- snip -->
<select class="valueSkippedHyperSwap" id="answers_3__Answer" name="answers[3].Answer">
<option selected="selected" value="^">(^) Blank (skip pattern)</option>
<option value="0">(0) Clear speech-distinct intelligible words</option>
<option value="1">(1) Unclear speech-slurred or mumbled words</option>
<option value="2">(2) No speech-absence of spoken words</option>
<option value="-">(-) Not assessed</option>
</select></div>

<!-- snip -->

这里要注意的关键事项之一是 valueSkippedHyperSwap 类名称的输入不止一个,因此在事件中,我们必须使用 $(this) 来确定正确的选项,不能再进行搜索。

4

1 回答 1

2

假设你的 HTML 是这样的

<select id="dd" class="valueSkippedHyperSwap"> 
    <option value="^">None</option>
    <option value="1">One</option>
    <option value="2">Two</option>    
</select>

^如果选择了任何其他选项,则以下脚本应删除具有值的项目

$(function(){

    $('.valueSkippedHyperSwap').change(function () {
       var item=$(this);
      if(item.val()!="^")
      {
        item.find("option[value='^']").remove();
      }
    });            

});

JsFiddle 示例http://jsfiddle.net/He5gP/10/

于 2012-06-12T21:30:27.290 回答