2014-07-21 165 views
0

我在我的HTML上有兩個下拉菜單。 我想根據選定的選項過濾值。 當用戶點擊第一個下拉列表的值時,必須更改另一個下拉列表的值。 我知道它簡單,而且你對它簡單。 但我的選項是在我的SQL裏面,我填充了我的兩個從SQL下拉列表中的選項值。 這是我的代碼:根據所選選項篩選值

第一個下拉列表:

<select class="fieldDropdown" ng-model="formData.Land" name="select1" id="select1" ng-options="value.ls_ItemText as value.ls_ItemText for (key, value) in formLIST.lands"> 
</select> 

第二個下拉列表:

<select class="fieldDropdown" ng-model="formData.Phase" name="select2" id="select2" ng-options="value.ls_ItemIndex as value.ls_ItemText for (key, value) in formLIST.phases> 
</select> 

我知道它的工作原理如下方法:

第一個下拉列表:

<select name="select1" id="select1" ng-model="FormData.Lands" style="width: 206px; height: 27px;"> 
    <option value="0"> </option> 
    <option value="1">A</option> 
    <option value="2">B</option> 
    <option value="3">C</option> 
    <option value="4">D</option> 
    <option value="5">E</option> 
</select> 

第二個下拉:

<select name="select2" id="select2" ng-model="FormData.Phases" style="width: 206px; height: 27px;"> 
    <option value="0"></option> 
    <option value="1">A</option> 
    <option value="1">AA</option> 
    <option value="1">AAA</option> 
    <option value="1">A</option> 
    <option value="1">A</option> 

    <option value="2">BBB</option> 
    <option value="2">BBBB</option> 
    <option value="2">BBBBBBB</option> 
    <option value="2">B</option> 

    <option value="3">CCCC</option> 
    <option value="3">CC</option> 

    <option value="4">DDD</option> 

    <option value="5">E</option> 
</select> 

的jQuery:

$("#select1").change(function() { 
    if ($(this).data('options') == undefined) { 
     /*Taking an array of all options-2 and kind of embedding it on the select1*/ 
     $(this).data('options', $('#select2 option').clone()); 
    } 
    var id = $(this).val(); 
    var options = $(this).data('options').filter('[value=' + id + ']'); 
    $('#select2').html(options); 
}); 

這是工作JSFiddle

但正如我詢問,我想填補SQL值除HTML指導打字。

即使我可以用下面的代碼填寫:

<select class="fieldDropdown" ng-model="formData.Phase" name="select2" id="select2" ng-options="value.ls_ItemIndex as value.ls_ItemText for (key, value) in formLIST.phases | filter:{ls_ItemValue:'4'}"></select> 

,但它只是我帶回來「d」組第二個下拉內。但它不適用於其他團體。

謝謝。

+0

您正在使用'filter:{ls_ItemValue:'4'}''所以它的過濾。您正在使用angularjs,然後想像angularjs – Satpal

+0

不,它只是一個例子。我想分類全部。 當我點擊第一個下拉列表中的值「A」時,它爲我帶來了第二個下拉菜單中「A」組的值。 此過濾器:{ls_ItemValue:'4'}只需帶上類別號碼4 – Mehran

+0

以角度顯示,您需要將過濾器謂詞從字符串值更改爲範圍變量 – charlietfl

回答

1

使用此jQuery的:

$("#select1").change(function() { 
    $scope.currentID = $(this).val(); }); 

這對你的HTML:

<select class="fieldDropdown" ng-model="formData.Phase" name="select2" id="select2" ng-options="value.ls_ItemIndex as value.ls_ItemText for (key, value) in formLIST.phases | filter:{ls_ItemValue: currentID}"></select> 

,現在它會工作。

+0

謝謝我的Name Mate。 其正常工作。 – Mehran