将选项值从一个函数传递到另一个函数

时间:2017-05-22 22:07:18

标签: javascript jquery

我有这样的功能:

  $('input[type=radio][name=editList]').change(function() {
                    if (this.value == 'Proveedor') {
                        $.getJSON("@Url.Action("GetProveedores", "Agenda")",
                            function (data) {
                                var items = "";
                                $.each(data,
                                    function(index, item) {
                                        items += "<option value='" + item.ID + "'>" +item.ID+item.NombreComercial + "</option>";
                                    });
                                $("#lstProveedor").html(items);
                            });

我希望将item.ID用于另一个函数:

 $(function getCuadrilla() {
    var items = "";
   $.getJSON("@Url.Action("GetCuadrillas", "Agenda")" + "?ProveedorID=" + ID, function (data) {

   $.each(data, function (index, item) {...

                            });
                            $("#lstcuadrilla").html(items);
                        });

                    });

我尝试使用$('input[type=radio][name=editList]').val()作为

    $(function getCuadrilla() {
            var items = "";
$('input[type=radio][name=editList]').val();
 $.getJSON("@Url.Action("GetCuadrillas", "Agenda")" + "?ProveedorID=" + ID, function (data) {

           $.each(data, function (index, item) {...

                                    });
                                    $("#lstcuadrilla").html(items);
                                });

                            });

但是item.ID我收到字符串"Proveedor",任何人都可以解释我如何访问item.ID?此致

完成JS:

<script type="text/javascript">


  $(function getResponsable() {
    $('input[type=radio][name=editList]')
      .change(function() {
        if (this.value == 'Proveedor') {
          $.getJSON("@Url.Action("GetProveedores ", "Agenda ")",
            function(data) {
              var items = "";
              $.each(data,
                function(index, item) {
                  items += "<option value='" + item.ID + "'>" + item.ID + item.NombreComercial + "</option>";
                });
              $("#lstProveedor").html(items);
            });
        } else if (this.value == 'Sucursal') {
          $.getJSON("@Url.Action("
            GetUnidades ", "
            Agenda ")",
            function(data) {
              var items = "";
              $.each(data,
                function(index, item) {
                  items += "<option value='" + item.ID + "'>" + item.Codigo + "-" + item.Nombre + "</option>";
                });
              $("#lstProveedor").html(items);
            });

        } else if (this.value == 'Usuario') {
          $.getJSON("@Url.Action("GetUsuario ", "Agenda ")",
            function(data) {
              var items = "";
              $.each(data,
                function(index, item) {
                  items += "<option value='" + item.ID + "'>" + item.Nombre + " " + item.Apellido + "</option>";
                });
              $("#lstProveedor").html(items);
            });
        }
      });

    $(function getCuadrilla() {
      var items = "";
     var ID = $("#lstProveedor").val();
      $.getJSON("@Url.Action(" GetCuadrillas ", "Agenda ")" + "ProveedorID=" + ID,
        function(data) {

          $.each(data, function(index, item) {
            items += "<option value='" + item.ID + "'>" + item.NombreComercial + "</option>";
          });
          $("#lstProveedor").html(items);
        });

    });

  });

正如詹姆斯评论的那样,我尝试了它,并且JS击中了第一线,但它没有通过那里 enter image description here

更新

新js结构:

<script type="text/javascript">
        $(function getResponsable() {
            $('input[type=radio][name=editList]')
                .change(function() {
                    if (this.value == 'Proveedor') {
                        $.getJSON("@Url.Action("GetProveedores", "Agenda")",
                            function(data) {
                                var items = "";
                                $.each(data,
                                    function(index, item) {
                                        items += "<option value='" +
                                            item.ID +
                                            "'>" +
                                            item.ID +
                                            item.NombreComercial +
                                            "</option>";
                                    });
                                $("#lstProveedor").html(items);
                            });
                    } else if (this.value == 'Sucursal') {
                        $.getJSON("@Url.Action("GetUnidades", "Agenda")",
                            function(data) {
                                var items = "";
                                $.each(data,
                                    function(index, item) {
                                        items += "<option value='" +
                                            item.ID +
                                            "'>" +
                                            item.Codigo +
                                            "-" +
                                            item.Nombre +
                                            "</option>";
                                    });
                                $("#lstProveedor").html(items);
                            });

                    } else if (this.value == 'Usuario') {
                        $.getJSON("@Url.Action("GetUsuario", "Agenda")",
                            function(data) {
                                var items = "";
                                $.each(data,
                                    function(index, item) {
                                        items += "<option value='" +
                                            item.ID +
                                            "'>" +
                                            item.Nombre +
                                            " " +
                                            item.Apellido +
                                            "</option>";
                                    });
                                $("#lstProveedor").html(items);
                            });
                    }

                });
            $("#lstProveedor").change(function() {
                var items = "";
                var ID = $("#lstProveedor").val();
                $.getJSON("@Url.Action("GetCuadrillas", "Agenda")" + "ProveedorID=" + ID,
                  function(data) {
                      $.each(data, function(index, item) {
                          items += "<option value='" + item.ID + "'>" + item.NombreComercial + "</option>";
                      });
                      $("#lstProveedor").html(items);
                  }
    );
            });
        });
    </script>

1 个答案:

答案 0 :(得分:0)

你可以试试这个。请记住,您传递给处理函数的ID是提供者ID或sucursal id或usuario id,具体取决于第一次填充下拉列表中的哪个单选按钮。此处理程序即使已被Cuadrillas填充,也会保留在下拉列表中。

更改

$(function getCuadrilla() {
  var items = "";
 var ID = $("#lstProveedor").val();
  $.getJSON("@Url.Action(" GetCuadrillas ", "Agenda ")" + "ProveedorID=" + ID,
    function(data) {

      $.each(data, function(index, item) {
        items += "<option value='" + item.ID + "'>" + item.NombreComercial + "</option>";
      });
      $("#lstProveedor").html(items);
    });

});

$("#lstProveedor").change(function (e) {
  var items = "";
  var ID = $("#lstProveedor").val();
  $.getJSON("@Url.Action(" GetCuadrillas ", "Agenda ")" + "ProveedorID=" + ID,
    function(data) {
      $.each(data, function(index, item) {
        items += "<option value='" + item.ID + "'>" + item.NombreComercial + "</option>";
      });
      $("#lstProveedor").html(items);
    }
  );
});