2012-10-30 170 views
2

我對此非常陌生,知識有限(過去幾周所有的自學)。我已經嘗試了許多其他人提出的類似問題的解決方案,但似乎沒有一個適合我。使用jQuery和jQueryUI顯示/隱藏div

我想設置'date_range'div只在選擇'範圍'過濾器時可見。我正在使用jQuery 1.8.2和jQueryUI 1.9(用$ .noConflict();)設置。

我的代碼在下面(請善良,我知道我不是很擅長),任何幫助表示讚賞。

<script> 
$('#filters').is(function() { 
if ($('#range').attr('checked')) { 
    $('#date_range').show(); 
} else { 
    $('#date_range').hide(); 
} 
}); 
</script> 

    <div> 
     <form align="center" id="filters"> 
      <input type="radio" id="last24" name="filter_radio" checked="checked"/><label for="last24">Last 24hrs</label> 
      <input type="radio" id="WTD" name="filter_radio" /><label for="WTD">WTD</label> 
      <input type="radio" id="last_week" name="filter_radio" /><label for="last_week">Last Week</label> 
      <input type="radio" id="range" name="filter_radio" /><label for="range">Range</label> 
       <div id="date_range"> 
        <br /> 
      <label for="from">From: </label><input type="text" id="from" name="from"/> 
      <label for="to">To: </label><input type="text" id="to" name="to" /> 
       </div> 
     </form>  
    </div> 

+0

缺少$(函數(){});圍繞你的jQuery。 – user1032531

回答

3

試試這個代碼: -

這是jQuery來隱藏和顯示: -

<script type="text/javascript" src="http://code.jquery.com/jquery.min.js" ></script> 
<script> 
function asfd(str) 
{ 
if(str==true) 
{ 
jQuery('div#renew').show(); 
} 
else 
{ 
jQuery('div#renew').hide(); 
} 
} 
</script> 

這是jQuery函數稱爲: -

<input type="checkbox" autocomplete="off" onchange="asfd(this.checked);"/> 

。這是將隱藏或顯示DIV: -

<div id="renew" style="display: none ;"> 
........Content......... 
</div> 
+0

謝謝,這個工作很完美,我也學到了一些東西。 – xgstr

+0

有時會導致閃爍。任何解決方案來避免這種情況 – user122345656

6

試試這個代碼

$(function(){ 

    $('#date_range').hide(); 

    $('#filters').on('click' ,'input[type=radio]', function(){ 
     if (this.id == "range" && this.checked) { 
      $('#date_range').show(); 
     } else { 
      $('#date_range').hide(); 
     } 
    }); 

}); 

入住這DEMO

希望這將有助於

0

你可以用這個

實現它
$('#date_range').hide(); 

$('[name=filter_radio]').on('click', function(){ 
    if($('#range').is(':checked')){ 
     $('#date_range').show(); 
    } else { 
     $('#date_range').hide(); 
    } 
}); 

希望它簡單明瞭..

0

你可以試試這個

標記

<label><input id="last24" type="radio" name="filter_radio" value="1" />Last 24hrs</label> 
<label><input id="WTD" type="radio" name="filter_radio" value="2" />WTD</label> 
<label><input id="last_week" type="radio" name="filter_radio" value="3" />Last Week</label> 
<label><input id="range" type="radio" name="filter_radio" value="4" />Range</label> 

<div id="filter_radio-4" class="toHide" style="display:none"> 
    <br /> 
      <label for="from">From: </label><input type="text" id="from" name="from"/> 
      <label for="to">To: </label><input type="text" id="to" name="to" /> 
</div> 

的Javascript

$(function() { 
    $("[name=filter_radio]").click(function(){ 
      $('.toHide').hide(); 
      $("#filter_radio-"+$(this).val()).show('slow'); 
    }); 
});​ 

DEMOhttp://jsfiddle.net/chridam/FSrBC/

+0

感謝您的回覆。這個問題是我計劃分配單選按鈕的時間範圍,以允許他們過濾從Oracle數據庫提取的數據。 – xgstr

+0

不用擔心。如果你有一個工作解決方案,那很好 – chridam