2012-03-13 7 views
0

私は選択されたものに基づいてdivを変更するフォームselectを持っています。私の望むように機能していましたが、新しい機能が必要なため、条件文が機能しません。ユーザーがすべてのイベントを選択すると、すべてのイベントを表示する必要がありますが、ロジックは機能していません。jQueryのifステートメントは、フォームですべてを表示することを選択できません。

コードがhttp://jsfiddle.net/RhW89/

HTML

<form> 
<select id="eventFilter"> 
    <option value="all">All Events</option> 
    <option value="a">AAA</option> 
    <option value="b">BBB</option> 
    <option value="c">CCC</option> 
</select> 
</form> 

<div id="displayInfo">  
    <div id="a" class="event">Content from AAA</div> 
    <div id="b" class="event">Content from BBB</div> 
    <div id="c" class="event">Content from CCC</div> 

</div> 

に設定されているjQueryの

$('#eventFilter').change(function(){ 
    if(
    $(this).val("all")){ 
     alert("showeverything"); 
     $('.event').show(); 
    } 
    else 
    { 
     $('.event').hide(); 
     $('#' + $(this).val()).show(); 
    } 
}); 
         ​ 
​ 

答えて

1

すべてに値を設定変更$(this).val("all")、へ:

$(this).val() == "all" 

現在の値を文字列 "all"と比較します。

Updated JSFiddle

1

あなたはあなたのコードで値を設定する代わりに、比較を作っていました。これを使用します。

if($(this).val() == "all") 
0

問題は、あなたが

$('#eventFilter').change(function(){ 
    if($(this).val() == "all"){ 
     alert("showeverything"); 
     $('.event').show(); 
    } 
    else 
    { 
     $('.event').hide(); 
     $('#' + $(this).val()).show(); 
    } 
}); 
で終わるので、あなたが順番に値を渡さず .val()を使用して値

を設定.val()に「すべて」の値を返す渡しているということです

0

これを試してください。

$('#eventFilter').change(function(){ 

    if(this.value =="all") 
    { 
     $('.event').show(); 
    } 
    else 
    { 
     $('.event').hide(); 
     $('#' + $(this).val()).show(); 
    } 
}); 
関連する問題