Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 获取更改事件后输入的值_Jquery - Fatal编程技术网

Jquery 获取更改事件后输入的值

Jquery 获取更改事件后输入的值,jquery,Jquery,因此,我有许多输入type=“number”字段,当它们被更改时,我运行以下命令: $('.amount-input').change(function() { checkAmount($(this)); setPrices(); allowSubmit(); }); checkAmount函数使用已更改元素的值运行ajax请求,以检查该数字是否低于或高于其他数字(比如5)。如果较高,则将每个数字字段唯一的隐藏字段的值设置为“true”: 接下来,allowSubmit函数应

因此,我有许多输入type=“number”字段,当它们被更改时,我运行以下命令:

$('.amount-input').change(function() {
   checkAmount($(this));
   setPrices();
   allowSubmit();
});
checkAmount函数使用已更改元素的值运行ajax请求,以检查该数字是否低于或高于其他数字(比如5)。如果较高,则将每个数字字段唯一的隐藏字段的值设置为“true”:

接下来,allowSubmit函数应该检查所有这些true/false字段的值,如果其中任何字段设置为true,它应该禁用submit按钮

function allowSubmit() {
    var givenError = "false";
    $( ".rowToHighAmount" ).each(function() {
    var val = $(this).get(0).value;
        if (val == "true") {
            givenError = "true";
        }       
    });

    if (givenError == "true") {
      $("#cartSubmitBtn").attr("disabled", "disabled");
    } else {
      $("#cartSubmitBtn").removeAttr("disabled");
    }                       
}
因此,我们必须解决这个问题。checkAmounts()会更改隐藏的true/false字段的值。但是-当allowSubmit()运行时,它会处理该字段的旧值。例如:

如果我将input type=“number”的值设置为4,则true/false字段将设置为false。如果我随后将input type=“number”更改为6-true/false字段设置为true(意味着6大于5)-但当allowSubmit运行时,它仍然认为该值为false-并且不会禁用submit按钮。只有当我再次增加这个数字时,allowSubmit才知道有一个真值

另一方面也一样。为了再次激活提交按钮,我必须两次将数字字段更改为下面的5

所以-总之-我需要确保allowSubmit拾取的值是绝对当前值-而不是更改操作之前的值


有人有什么想法吗

这是一个经典问题:由于ajax函数是异步的,因此需要从您给它的回调中执行
allowSubmit
,也就是说,如果我跟着您,在
checkAmount
中执行

allowSubmit函数应该检查所有这些真/假字段的值

如果您正在检查由ajax请求更改的字段的真/假,那么您应该在ajax的成功回调中调用
allowsubmit
。。 并使用
prop()

if (givenError == "true") {
  $("#cartSubmitBtn").prop("disabled", true);
} else {
  $("#cartSubmitBtn").prop("disabled",false);
}     

setPrices
allowSubmit
应该作为ajax请求的成功处理程序的一部分运行。谢谢!它成功了。现在,我在ajax请求的.done段中运行alowSubmit()。
if (givenError == "true") {
  $("#cartSubmitBtn").prop("disabled", true);
} else {
  $("#cartSubmitBtn").prop("disabled",false);
}