2016-07-10 9 views
0

で、私は以下のdiv要素のいずれかを表示する:jQueryの - <code>select</code>リストで選択したオプションに基づいて選択オプションの変更、表示/非表示DIV

<div id="field-person">Blah</div> 

<div id="field-company">Blah 2</div> 

これは私が右に持ってselectとjQueryであります

<select name="sub_type" id="sub_type"> 
    <option value="company">A company</option> 
    <option value="person">A person</option> 
</select> 

$(document).ready(function() { 
    var f = $("#field-person"); 
    $("#sub_type").change(function() { 
    if (this.checked && this.value == "person") { 
     f.show(); 
    } else { 
     f.hide(); 
    } 
    }).change() 
}); 

:今、どのA personオプションが選択されている場合、は、それ以外の場合は隠されたままにする必要があり、#field-personを示すべきしかし、personオプションを選択すると、何も起こりません。companyオプションも同じです。変更なし、Chromeコンソールには何も表示されません。 jQueryは私の強い訴訟ではありません。ここで

は、私が使用している実際のコードへのリンクです:select要素は.checked性質を持っていない

if (this.value == "person") { 
    ... 
} 

:if文にJSFiddle

+0

私はあなたが間違って持っている唯一のものは「.change()」(第2最後の行に)あなたのjsの中の呼び出しだと思います。変更してみてください}})。change() "to"}); " – Josh

+0

@Joshこれはすぐに '.change()'イベントを引き起こします。 –

+0

ええ、ok ...セミコロンが必要です。それは私のために見つけた。 – Josh

答えて

2
はあなたを変更

。したがって、this.checkedundefinedを返します。これにより、条件はfalseになります。

Demo

関連する問題