我的情况是,在某些情况下,下拉列表可以包含一个不可选的默认值,一旦另一个值发生更改,默认值就不再是一个选项。据我所知,这个概念本身并不存在,所以我试图用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)来修正正确的选项,不能再做其他搜索。
答案 0 :(得分: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/