2016-03-04 53 views
0

我想在用戶完成時動態地將字段輸入添加到表單中。但是,如果用戶更改其他人依賴的先前字段的值,則我希望再次隱藏這些更新的字段,並將其值重置爲默認值。我可以毫無問題地顯示和隱藏輸入字段。但是,無論我做什麼,我都無法更改選擇下拉菜單的值。在Java Play Framework中使用JQuery更新下拉選擇

這裏是我的腳本:

$(function() { 
    $('#type_selection').change(function() { 
     var case_type = $('#type_selection :selected').val(); 
     if(case_type !== "") { //the default value is an empty string 
      $('.subtype-panel').slideDown('slow'); 
     } 
     else { 
      $('.subtype-panel').slideUp('slow'); 
      $('#subytype_selection').val("").change(); 
     } 
    }); 

}); 

播放模板:

@(caseForm: play.data.Form[Case]) 

@import views.html.common._ 
@import models._ 


@implicitFieldConstructor = @{ 
    b3.vertical.fieldConstructor 
} 

@main("New Case Info") { 
    <div class="page-header"> 
     <h3>New Case Information<span class="pull-right label label-primary">Open</span></h3> 
    </div> 

    <fieldset> 
    @b3.form(action = routes.CaseController.save()) { 

     <div class="panel panel-primary"> 
      <div class="panel-heading">Case Type</div> 
      <div class="panel-body"> 

       <div class="row"> 
        <div class="col-md-4"> 
        @b3.select(caseForm("caseType"), 
         options = options(Case.typeOptions), 
         '_id -> "type_selection", 
         '_label -> "Case Type", 
         '_default -> "-- Select a Type --") 
        </div> 
        <div class="col-md-3"> 
        @datePicker(caseForm("date"), '_label -> "Date", 'placeholder -> "mm/dd/yyyy") 
        </div> 
       </div> 
      </div> 
     </div> 

     <div class="panel panel-primary subtype-panel"> 
      <div class="panel-heading">Case Subtype</div> 
      <div class="panel-body"> 
       <div class="row"> 
        <div class="col-md-4"> 
        @b3.select(caseForm("caseSubType"), 
         options = options(Case.subTypeOptions), 
         '_id -> "subtype_selection", 
         '_label -> "Subtype", 
         '_default -> "-- Select a Subtype --") 
        </div> 
       </div> 
      </div> 
     </div> 


    } 

    </fieldset> 

} 

的B3語法可能有些奇怪你。它來自播放引導程序庫:http://adrianhurt.github.io/play-bootstrap/ 對於b3選擇字段,默認選項會自動分配一個空字符串的值。這就是我想要改變我的選擇選擇回到使用JQuery。

+1

您是否檢查過'b3'生成的'id'?我認爲如果你想覆蓋它,你應該使用:''id - >「type_selection」',所以不用下劃線 – adis

+0

@adis工作!我並不知道b3的這個規則。謝謝! – Kaitrono

回答

0

解決方案正如adis在他的評論中所說的。使用_id -> foo會更改整個表單組的標識(標籤和下拉列表),但它不會專門更改選擇框的標識。你必須使用id -> foo來做到這一點。