1

場合によっては、ドロップダウンリストに選択できないデフォルト値が含まれる場合があります。別の値が変更されると、デフォルト値はオプションではなくなります。私が知る限り、この概念はネイティブには存在しないため、jQuery でコード化しようとしています。この条件を持つすべての DropDownList には、クラス「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 -->

ここで注意すべき重要なことの 1 つは、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 に答える