根据JSF中第一个下拉列表的值禁用第二个下拉列表

时间:2016-05-25 05:10:14

标签: javascript jquery html jsf

我有ID“onemenu1”的下拉列表。对于下面给出的jquery,onchange事件不起作用。我无法知道这个问题。任何线索都将受到赞赏。

$('#oneMenu1').change(function() {
  if ($('#oneMenu1').val() == 'Never') {
    $('#secsDropdown').attr('disabled', true);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p:selectOneMenu id="oneMenu1" required="true" styleClass="vehAvailClass" requiredMessage="#{itrams['RefreshRateReq']}" editable="true" style="width:100px" value="#{dashboardAction.selectRefreshRate}">
  <f:selectItem itemLabel="#{dashboardAction.vehicleAvail}" itemValue="#{dashboardAction.vehicleAvail}" />
  <f:selectItems value="#{dashboardAction.getRRList()}" />
</p:selectOneMenu>

<!-- JIRA 741 start  -->

<p:selectOneMenu id="secsDropdown" required="true" value="#{dashboardAction.unitOfRefreshRate}" style="width:70px">
  <f:selectItems value="#{dashboardAction.getRRUnitList()}" />
</p:selectOneMenu>

1 个答案:

答案 0 :(得分:0)

您需要使用.prop()方法,而不是改用课程:

$('.vehAvailClass').change(function() {
    $(this).next('select').prop('disabled', this.value === 'Never'); 
});                                      // this.value === 'Never'
                                         // results in true/false

如果您在select中有form个元素,则必须注意到ID已经以这种方式更改formid:selectid。因此,在您的情况下,它可能类似于yourformID:oneMenu1

更新:

$('#dashboardFormId\\:oneMenu1').change(function() {
    $('#dashboardFormId\\:secsDropdown').prop('disabled', this.value === 'Never'); 
}); 

在这里你必须逃避: