2015-12-04 71 views
0

我有兩個下拉列表,它們是從mysql動態填充的。一個用於銀行,另一個用於分支機構。如果銀行下拉更改,則應將分支數據顯示在分支下拉列表中。在這裏,我使用了兩個獨立的功能來完成這項工作,這些都很好,並且工作得很好。jquery dropdown onchange issue

我這是怎麼定義這兩個函數:

function Banks($selecter, selected) { 
// my stuff ---- 
} 
function Branches($selecter, bid, selected) { 
// my stuff ---- 
} 

我的問題是我現在已經設置爲顯示對銀行的下拉列表中選擇默認值,當文件已準備就緒。但其分支機構數據並未填充。但是,當我從銀行更改數據的工作。

這是我試了一下:

var bankReg = $('#DropDownEdit').data('id'); 
    var branchReg = $('#branchDropDown').data('id2'); 
    Banks($('#DropDownEdit'), bankReg); 
    $(document).on('change', '#DropDownEdit', function(){ 
    var bankID = $("#DropDownEdit").val(); 
    Branches($('#branchDropDown'), bankID, branchReg); 
    }); 

UPDATE: 

Banks功能:

function Banks($selecter, selected) { 
    $selecter.empty(); 
    $selecter.append('<option>Loadding.....</option>'); 
    $selecter.append("<option value=''>--- Select Bank ---</option>"); 
    $.ajax({ 
    type: "post", 
    url: "includes/process_bank_dropdown_populate_ajax.php", 
    contentType: "application/json; charset-utf-8", 
    dataType: "json", 
    success: function(data) { 
     $selecter.empty(); 
     $selecter.append("<option value=''>--- Select Bank ---</option>"); 
     $.each(data, function(i,item){ 
     var selecting; 
     if (selected === data[i].bankID) { 
      selecting = ' selected="selected"'; 
     } else { 
      selecting = ''; 
     } 
     $selecter.append('<option '+selecting+' value="'+data[i].bankID+'">'+data[i].bank+'</optoin>'); 
     }); 
    }, 
    complete: function() {} 
    }); 
} 

可有人告訴我怎樣得到這個工作? 謝謝。

+0

爲什麼不在文檔準備就緒時填充分支下拉列表,可能是通過檢查銀行下拉列表的值? –

+0

@ elio.d,我不確定你說的是什麼,你能不能詳細說明一下?謝謝。 – user3733831

+0

你可以顯示下拉菜單的html嗎?另一件事是你爲什麼要調用'Branches($('#branchDropDown'),bankID,branchReg);'當branchReg在更改事件中未被更改時?通過或者定義'功能分支($ selecter,bid,selected)'它是選中的元素。 –

回答

0

沒有看到您的代碼,我只能給你一個線程來解決問題。

Banks方法內調用Branches方法。

function Banks($selecter, selected) { 
// my stuff ---- 

// Put this inside ajax success callback as last statements 
var bankID = $("#DropDownEdit").val(); // Check this value available here or take value from success callback directly. 
var branchReg = $('#branchDropDown').data('id2'); // Check this value available here or take value from success callback directly. 
Branches($('#branchDropDown'), bankID, branchReg); 

} 

這裏bankIDbranchReg是默認選擇的值。這些工作,如果範圍可以訪問Banks方法中的上述變量。

0

您可以觸發銀行變更做你想在填充默認銀行後調用它,它會觸發就像你手動選擇銀行。

$("#bankDropDownEdit").change(); 
0

在文檔加載 隱藏兩個列表最初 獲取默認的銀行分支機構和填充列表,然後在回調函數使這兩個列表中出現

+0

你能告訴我一個例子嗎? – user3733831

+0

在$ .ajax()函數中的css #dropDownEdit,#branchDropDown {display:none;}填充列表並將顯示設置爲可見 – Raider

0

當您指定的值到下拉它不會叫任何改變事件,當你從下拉列表中選擇,然後這個事件將會觸發。

後分配值到下拉呼叫改變事件

$( 「#bankDropDownEdit」)變化()。