问题描述
|
希望我能解释我在找什么...
我有两个文本框:长度和宽度
在一个框中,最大值是200,而在另一个框中,最大值是100。目前,我正在使用以下代码:
document.getElementById(\'Length\').onchange = function(){
if(this.value > 200){
this.value = 200;
}
if(this.value < 10){
this.value = 10;
}
}
document.getElementById(\'Width\').onchange = function(){
if(this.value > 100){
this.value = 100;
}
if(this.value < 20){
this.value = 20;
}
}
这是棘手的部分:我希望不要设置哪个框具有哪个最大值。那应该取决于客户的类型。
如果有人在“ Length”中键入的值小于100,则Width \的最大值为200。但是,如果有人在“ Length”中键入“ 158”,则Width \的最大值应为100,而Length \的max为200.反之亦然。
另外,如果有人首先在“ Length”中键入150,然后在“ Width”中键入160,则“ Length”中的“ 250”应更改为100-因此,“ 200 max”值应属于该框,该框最近的值大于“ 100”最高
编辑:另外,是否可以将最大值与最小值连接?因此,获得200个最大值的盒子也有10个最小值,然后另一个盒子有100个最大值和20个最小值。
希望这是可以理解的。
解决方法
可能是这样的:
var length = document.getElementById(\'Length\'),width = document.getElementById(\'Width\');
length.onchange = function() {
var maxValue = width.value < 100 ? 200 : 100;
if (this.value > maxValue) {
this.value = maxValue;
}
if (this.value < 10) {
this.value = 10;
}
};
width.onchange = function() {
var maxValue = length.value < 100 ? 200 : 100;
if (this.value > maxValue) {
this.value = maxValue;
}
if (this.value < 10) {
this.value = 10;
}
};
jsFiddle。