Javascript/AJAX关于AJAX成功函数的当前输入

Javascript/AJAX关于AJAX成功函数的当前输入,javascript,html,ajax,Javascript,Html,Ajax,我正在写一篇关于一家在线电器商店的专题文章。 我已经对当前订单进行了建模,但是这个Javascript代码有一些问题。 如果实际库存(在数据库中,由/api/GetStockArticle servlet控制的库存)低于输入上的当前数字,则应该更改输入上的颜色。我将此事件添加到我可以拥有的所有输入中,这些输入是动态的,因为它取决于我当前订单的行数 window.onload = function () { var inputs= document.getElementsB

我正在写一篇关于一家在线电器商店的专题文章。 我已经对当前订单进行了建模,但是这个Javascript代码有一些问题。 如果实际库存(在数据库中,由/api/GetStockArticle servlet控制的库存)低于输入上的当前数字,则应该更改输入上的颜色。我将此事件添加到我可以拥有的所有输入中,这些输入是动态的,因为它取决于我当前订单的行数

    window.onload = function () {
        var inputs= document.getElementsByClassName("quantity");
        for (var i = 0, n = inputs.length; i < n; i++) {
            inputs[i].addEventListener("change", getStock, false);
        }
    }
        function getStock(evt) {
            $.ajax("../api/GetStockArticle", {
                data: {'cart': evet.target.id},
                dataType: 'text',
                cache: false,
                success: checkStock,
                error: function (xhr, status, ex) {
                    alert("Error (" + xhr.status + "):" + status);
                }
            });
        }
        function checkStock(stock) {
            //var input = document.getElementsByClassName("quantity");
            if (stock < input[0].value) {
                input[0].style.color = "#C02C11";
            } else {
                input[0].style.color = "black";
            }
        }
window.onload=函数(){
var输入=document.getElementsByClassName(“数量”);
对于(变量i=0,n=inputs.length;i
我这里的主要问题是,在checkStock函数(即success函数)中,我想引用值发生变化的相同输入,但我不知道如何做到这一点。
我没有正确地指导我的代码吗?

首先准备好函数,将输入作为参数:

function checkStock(input, stock) {
  if (stock < input.value) {
      input.style.color = "#C02C11";
  } else {
      input.style.color = "black";
  }
}

或者,您可以使用currying,也可以使用scope和closure:

function getStock(evt) {
        const input = evt.target;

        $.ajax("../api/GetStockArticle", {
            data: {'cart': evet.target.id},
            dataType: 'text',
            cache: false,
            success: function(stock) {
              if (stock < input.value) {
                input.style.color = "#C02C11";
              } else {
                input.style.color = "black";
              }
            },
            error: function (xhr, status, ex) {
                alert("Error (" + xhr.status + "):" + status);
            }
        });
    }
函数getStock(evt){ 常量输入=evt.target; $.ajax(“../api/GetStockArticle”{ 数据:{'cart':evet.target.id}, 数据类型:“文本”, cache:false, 成功:功能(库存){ if(库存<输入值){ input.style.color=“#C02C11”; }否则{ input.style.color=“黑色”; } }, 错误:函数(xhr、状态、ex){ 警报(“错误”(+xhr.status+”):+status); } }); }
function getStock(evt) {
        const input = evt.target;

        $.ajax("../api/GetStockArticle", {
            data: {'cart': evet.target.id},
            dataType: 'text',
            cache: false,
            success: function(stock) {
              if (stock < input.value) {
                input.style.color = "#C02C11";
              } else {
                input.style.color = "black";
              }
            },
            error: function (xhr, status, ex) {
                alert("Error (" + xhr.status + "):" + status);
            }
        });
    }