Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
Javascript 在更改前获取输入的旧值,并将总值更改为+;或-_Javascript_Jquery_Html_Statistics - Fatal编程技术网

Javascript 在更改前获取输入的旧值,并将总值更改为+;或-

Javascript 在更改前获取输入的旧值,并将总值更改为+;或-,javascript,jquery,html,statistics,Javascript,Jquery,Html,Statistics,我想做一份积分分配表。 我得到了4个输入类型,数值为0-100,总计=100分。因此,我们可以在每个输入中输入25个点。我已经得到它的工作,以验证输入数字最小0最大100,它减去总的输入值改变。 我对把总数加起来有问题。如果用户更改了已经更改的值,我需要先更改合计+值(更改前),然后更改合计-值(更改后)。 我不知道如何在改变之前获得价值 我的html <input type="number" min="0" max="100" name="1" /> <input type=

我想做一份积分分配表。 我得到了4个输入类型,数值为0-100,总计=100分。因此,我们可以在每个输入中输入25个点。我已经得到它的工作,以验证输入数字最小0最大100,它减去总的输入值改变。 我对把总数加起来有问题。如果用户更改了已经更改的值,我需要先更改合计+值(更改前),然后更改合计-值(更改后)。 我不知道如何在改变之前获得价值

我的html

<input type="number" min="0" max="100" name="1" />
<input type="number" min="0" max="100" name="2" />
<input type="number" min="0" max="100" name="3" />
<input type="number" min="0" max="100" name="4" />
<input type="text" id="Total" name="Total" value="100"/>
现在还不清楚它是如何工作的。

嗨,像这样保存旧值

$(“输入[type=number]”)。更改(函数(事件){
oldValue=$(this.data('oldValue');
如果(旧值>0){
maxPoints=parseInt($('#Total').val())+oldValue;
}否则{
maxPoints=parseInt($('#Total').val();
}    
myVal=(parseInt($(this.val())| | 0);
总计=最大点-myVal;
$(this.data('oldvalue',$(this.val())//将旧值更新为新值
$('总计').val(总计);
});

非常感谢:)现在可以了,我只需要阻止分发超过100分的可能性,不要让总数低于0:)稍后将测试所有内容。
$("input[type=number]").keyup(function(event) {
    max=100;
  min=0;
    value=( parseInt($(this).val()));
    if(value < min || isNaN(parseInt(value))) 
        $(this).val(0)
    else if(value > max) 
        $(this).val(100);
    else return value;
});

var total, myVal;
$("input[type=number]").change(function(event) {
    maxPoints = parseInt($('#Total').val());
    myVal = ( parseInt($(this).val()) || 0);
    total = maxPoints - myVal;
    $('#Total').val(total);
});
$("input[type=number]").change(function(event) {    
    oldValue = ???? - how to get this ? :P
    if(oldValue>0){
        maxPoints = parseInt($('#Total').val()) + oldValue;
    }else{
        maxPoints = parseInt($('#Total').val());
    }    
    myVal = ( parseInt($(this).val()) || 0);
    total = maxPoints - myVal;
    $('#Total').val(total);
});