Javascript jQuery将提交的范围滑块值发送到远程服务器

Javascript jQuery将提交的范围滑块值发送到远程服务器,javascript,jquery,Javascript,Jquery,我有一个页面,它有多个范围滑块和匹配的提交按钮,因此我可以在用户更改每个滑块值后提交该值,并将其发送到服务器,其中程序正在运行一个函数,该函数返回该值的平方并将其返回给我。这是我正在使用的代码: $(window).on("load", function(){ var slider = $(".slider"); slider.change(function(){ var output= this.value;

我有一个页面,它有多个范围滑块和匹配的提交按钮,因此我可以在用户更改每个滑块值后提交该值,并将其发送到服务器,其中程序正在运行一个函数,该函数返回该值的平方并将其返回给我。这是我正在使用的代码:

    $(window).on("load", function(){
         var slider = $(".slider");
         slider.change(function(){
            var output= this.value;
            $(".formoid").submit(function(event) {
                posting= $.get( "http://192.168.4.49:8002/data", { n:output });
                posting.done(function(data){
                console.log(data)
                });
            });
         });
    });
(Html)


需求第三方服务
值:%
需求第三产业
值:%

问题是,每次我提交另一个滑块的值时,我也会得到上一个滑块的值。例如,如果我将第一个滑块的值移动到3,我会在控制台中得到9。如果在此之后,我将另一个滑块的值移动到2,我会得到9和4。有人知道怎么解决这个问题吗

您并不真正希望表单提交,因此您不需要“提交”处理程序,更不用说每次更改一个滑块时都会增加的“提交”处理程序的累积

相反,请附加一个“单击”处理程序:

  • 禁止表单提交
  • 查找按钮对应的滑块元素
  • 执行
    $。获取(…)…
在看不到HTML的情况下,会有一些猜测,所以请准备好进行一些调试

编辑:

看到HTML,javascript就变成:

$(window).on("load", function() {
    $(".btn-info").on('click', function(e) {
        e.preventDefault(); // prevent form submission.
        var $slider = $(this.form).closest('div').find("input.slider");
        $.get( "http://192.168.4.49:8002/data", { n: $slider.val() }).then(function(data) {
            console.log(data);
        });
    });
});

值9从何而来?您是否有一个完整的代码片段,我们可以尝试运行它来更好地理解这个问题?可能需要包含HTML。还有
.submit()
?有一个使用python hub运行的rest API,我通过.get()将初始值(本例中为3)发送给它在那里,值是平方的,然后返回。感谢这以一种更干净的方式工作,但是steel也有同样的问题,我将在上面的代码中包含一些html。希望这有帮助。我也会尝试一下,但我实际上通过在代码中使用单击而不是提交来修复它,并将输出变量设置为“全局”,这样就可以在.get()中使用独立地。
$(window).on("load", function() {
    $(".formoid").on('click', 'button', function(e) { // guess; adjust as necessary to delegate button click handling to the form. 
        e.preventDefault(); // prevent buttons submitting the form
        var $slider = $(this).prev('input'); // guess; adjust as necessary to select the appropriate slider relative to the clicked button
        $.get( "http://192.168.4.49:8002/data", { n: $slider.val() }).then(function(data) {
            console.log(data);
        });
    });
});
$(window).on("load", function() {
    $(".btn-info").on('click', function(e) {
        e.preventDefault(); // prevent form submission.
        var $slider = $(this.form).closest('div').find("input.slider");
        $.get( "http://192.168.4.49:8002/data", { n: $slider.val() }).then(function(data) {
            console.log(data);
        });
    });
});