2012-12-04 49 views
2

3個單選按鈕和頁面上的單個選擇框。點擊第一個單選按鈕,然後在選擇框中,它將分別顯示與第一個單選按鈕有關的內容...選擇第一個單選按鈕,它的工作正常,當我選擇第二個單選按鈕時,選擇框高度正在減小,無法看到在所有的,第三也是一樣的,它的鍍鉻發生,FF其做工精細選擇框高度不適用於鍍鉻

我的代碼

<label><input type="radio" name="reward-venue" value="Fly" checked /><div class="radio-icon Fly-sprite"></div></label> 
    <label><input type="radio" name="reward-venue" value="Drive" /><div class="radio-icon Drive-sprite"></div></label> 
    <label><input type="radio" name="reward-venue" value="Stay" /><div class="radio-icon Stay-sprite"></div></label> 



<div> 
    Reward program 
     <select name="program"> 
     <option value=""> - select one - </option> 
     {{#fly_programs}} 
     <optgroup label="Fly"> 
      {{#reward_program}} 
      <option value="{{reward_program_id}}">{{name}}</option> 
      {{/reward_program}} 
     </optgroup> 
     {{/fly_programs}} 
     {{#drive_programs}} 
     <optgroup label="Drive"> 
      {{#reward_program}} 
      <option value="{{reward_program_id}}">{{name}}</option> 
      {{/reward_program}} 
     </optgroup> 
     {{/drive_programs}} 
     {{#stay_programs}} 
     <optgroup label="Stay"> 
      {{#reward_program}} 
      <option value="{{reward_program_id}}">{{name}}</option> 
      {{/reward_program}} 
     </optgroup> 
     {{/stay_programs}} 
     </select> 
    </div> 

JS爲隱藏和顯示

var show_optgroup = $('optgroup[label=' + venue_name + ']') 
    , hide_optgroup = $('optgroup[label!=' + venue_name + ']') 
    ; 

    show_optgroup.show(); 
    show_optgroup.children('option').show(); 
    hide_optgroup.hide(); 
    hide_optgroup.children('option').hide(); 

    this.$el.find('option:selected').removeAttr('selected'); 
    this.$el.find('option:first').attr('selected', 'selected'); 
    $.uniform.update(); 
    return this; 
    }, 
+3

對我來說它的做工精細http://jsfiddle.net/JdHzw/,高度沒有變化,請提供一個工作代碼(嘗試使用[http://jsfiddle.net/](http:/ /jsfiddle.net/) – Luizgrs

回答

0

莫非這樣的工作?

$('[name="reward-venue"]').click(function(){ 
    $('optgroup[label!='+$(this).val()+']').hide(); 
    $('optgroup[label!='+$(this).val()+']').children('option').hide(); 
    $('optgroup[label='+$(this).val()+']').show(); 
    $('optgroup[label='+$(this).val()+']').children('option').show(); 
    $('[name="program"]')[0].selectedIndex=0; 
});​