Javascript 4个百分比输入框,如何将数值调整到100%

Javascript 4个百分比输入框,如何将数值调整到100%,javascript,angularjs,Javascript,Angularjs,我想向用户显示四个输入框,每个输入框以25%开始。如果用户更改输入框中的任何值,则其他三个框中显示的值将相应计算。例如:假设用户选择将其中一个主题更改为20%,我希望其他主题为26.6 您可以首先获取所有元素,然后在焦点上添加一个类,然后在模糊上删除它。此类将用于针对元素的其余部分并更新其值 //获取具有指定名称的所有输入,并向其中添加事件列表器 […document.getElementsByName('userInp')].forEach(函数(项){ //专注于向当前目标添加类 项目.添

我想向用户显示四个输入框,每个输入框以25%开始。如果用户更改输入框中的任何值,则其他三个框中显示的值将相应计算。例如:假设用户选择将其中一个主题更改为20%,我希望其他主题为26.6


您可以首先获取所有元素,然后在
焦点
上添加一个类,然后在
模糊
上删除它。此类将用于针对元素的其余部分并更新其值

//获取具有指定名称的所有输入,并向其中添加事件列表器
[…document.getElementsByName('userInp')].forEach(函数(项){
//专注于向当前目标添加类
项目.添加的事件列表器(“焦点”,功能(e){
e、 target.classList.add('focus')
});
//从当前目标移除模糊类
项目.添加的事件列表器(“模糊”,函数(e){
e、 target.classList.remove('focus')
});
项目.添加的事件列表器(“键控”,功能(e){
//从目标输入中获取值
让getVal=e.target.value;
如果(getVal<100){
//在本例中,在其余输入中平均分配为3
设eachVal=(100-getVal)/3
//然后选择所有没有类焦点的输入
//并更新其价值
document.querySelectorAll(“输入:非(.focus)”).forEach(函数(elem){
元素值=每个固定值(2)
})
}
})
})

您可以首先获取所有元素,然后在
焦点
上添加一个类,然后在
模糊
上删除它。此类将用于针对元素的其余部分并更新其值

//获取具有指定名称的所有输入,并向其中添加事件列表器
[…document.getElementsByName('userInp')].forEach(函数(项){
//专注于向当前目标添加类
项目.添加的事件列表器(“焦点”,功能(e){
e、 target.classList.add('focus')
});
//从当前目标移除模糊类
项目.添加的事件列表器(“模糊”,函数(e){
e、 target.classList.remove('focus')
});
项目.添加的事件列表器(“键控”,功能(e){
//从目标输入中获取值
让getVal=e.target.value;
如果(getVal<100){
//在本例中,在其余输入中平均分配为3
设eachVal=(100-getVal)/3
//然后选择所有没有类焦点的输入
//并更新其价值
document.querySelectorAll(“输入:非(.focus)”).forEach(函数(elem){
元素值=每个固定值(2)
})
}
})
})


您能提供您试图完成任务的内容吗?到目前为止,我设法获得所有值的总和函数getSum(total,num){return total+num;}如果($scope.priorityPercentages.reduce(getSum)>100)返回true;您必须执行类似于
100-[已更改的输入值]/[剩余输入数]
的操作,才能获得要将其他输入设置为的值。那么,更新这些输入背后的模型就很简单了。您能提供您试图完成任务的内容吗?到目前为止,我设法获得了所有值的总和function getSum(total,num){return total+num;}if($scope.priorityPercentages.reduce(getSum)>100)return true;您必须执行类似于
100-[已更改的输入值]/[剩余输入数]
的操作,才能获得要将其他输入设置为的值。然后,只需更新这些输入后面的模型即可。非常有趣地使用第一个扩展运算符,以避免使用
。call
@briosheje
数组。from
是另一个选项,这正是我要找的,非常感谢!我怎么能真正输入20%20%20%40%这样的值呢?因为所有的值都是不断更新的,而且除法总是以3为单位,这似乎创造了一些issues@AutDev无法获得要求。请创建一个演示并展示第一个排列运算符的非常有趣的用法,以避免使用
。call
@briosheje
数组。from
是另一个选项mazing,这正是我想要的,非常感谢!我怎么能真正输入20%20%20%40%这样的值呢?因为所有的值都是不断更新的,而且除法总是以3为单位,这似乎创造了一些issues@AutDev无法获得要求。你能制作一个演示和展示吗