繁体   English   中英

jQuery下拉列表onchange问​​题

[英]Jquery dropdown onchange issue

我有两个下拉列表,它们是从mysql动态填充的。 一种用于银行,另一种用于分支机构。 如果银行下拉菜单发生更改,则其行数数据应显示在分支下拉菜单中。 在这里,我使用了两个单独的函数来完成这项工作,并且它们都可以正常工作。

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

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

谁能告诉我如何使它工作? 谢谢。

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

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

在文档加载时,首先隐藏两个列表,然后获取默认银行的分支并填充列表,然后在回调函数中使两个列表都出现

当您将值分配给下拉列表时,它不会调用任何更改事件,而从下拉列表中进行选择时,则会触发该事件。

在为下拉呼叫更改事件分配值之后

$(“#bankDropDownEdit”)。change();

在看不到您的代码的情况下,我只能给您一个线程来解决问题。

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方法中访问上述变量的范围,则这些功能有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM