Jquery下拉onchange问​​题

时间:2015-12-04 08:17:20

标签: javascript jquery

我有两个下拉列表,它们是从mysql动态填充的。一个用于银行,另一个用于分支机构。如果银行下拉列表发生变化,它的banches数据应显示在分支下拉列表中。在这里,我使用了两个独立的功能来完成这项工作,这些都很好并且运行良好。

这就是我定义这两个函数的方法:

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() {}
  }); 
}

有谁能告诉我我是如何让这个工作的? 谢谢。

4 个答案:

答案 0 :(得分:0)

您可以在更改后触发银行,在填充默认银行后执行您想要的操作,它就会触发,就像您手动选择银行一样。

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

答案 1 :(得分:0)

在文档加载上 最初隐藏这两个列表 获取默认银行的分支并填充列表然后在回调函数中显示两个列表

答案 2 :(得分:0)

当您将值分配给下拉菜单时,它不会调用任何更改事件,当您从下拉列表中选择时,此事件将会触发。

将值分配给下拉呼叫更改事件

  

$(&#34;#bankDropDownEdit&#34)的变化();

答案 3 :(得分:0)

如果没有看到您的代码,我只能给您一个线程来解决问题。

Branches方法中调用Banks方法。

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方法中访问上述变量,则可以使用这些工作。