Php 2个盒子,2个动态最大值在设置一个时发生变化
我有一段代码,为两个文本框设置动态最大值:Php 2个盒子,2个动态最大值在设置一个时发生变化,php,javascript,Php,Javascript,我有一段代码,为两个文本框设置动态最大值: var length = document.getElementById('firstBox'), width = document.getElementById('secondBox'); max1 = 100; min1 = 20; max2 = 200; min2 = 10; length.onchange = function() { var maxValue, minValue; i
var length = document.getElementById('firstBox'),
width = document.getElementById('secondBox');
max1 = 100;
min1 = 20;
max2 = 200;
min2 = 10;
length.onchange = function() {
var maxValue, minValue;
if (width.value < max1) {
maxValue = max2;
minValue = (width.value < min1) ? min1 : min2;
} else {
maxValue = max1;
minValue = min1;
}
if (this.value > maxValue) {
this.value = maxValue;
}
if (this.value < minValue) {
this.value = minValue;
}
};
width.onchange = function() {
var maxValue, minValue;
if (length.value < max1) {
maxValue = max2;
minValue = (length.value < min1) ? min1 : min2;
} else {
maxValue = max1;
minValue = min1;
}
if (this.value > maxValue) {
this.value = maxValue;
}
if (this.value < minValue) {
this.value = minValue;
}
};
var length=document.getElementById('firstBox'),
宽度=document.getElementById('secondBox');
max1=100;
min1=20;
max2=200;
min2=10;
length.onchange=函数(){
var最大值、最小值;
如果(宽度值<最大值){
maxValue=max2;
minValue=(width.valuemaxValue){
this.value=maxValue;
}
if(this.valuemaxValue){
this.value=maxValue;
}
if(this.value
它工作得很好,只是如果客户在另一个框中键入的值高于最低最大值(max1),我想让最大值(max2)切换到另一个框
假设客户在第一个框中键入“150”,那么该框将自动被指定为max2“200”-但我想要的是,如果客户在第二个框中也键入“150”或任何高于max1的值,则该值应成为max2,这意味着第一个框将从其“150”降低到“100”,就像max1一样。反之亦然
希望这是可以理解的,否则请让我知道,我将尝试更好地解释它。这个想法是将变量
firstbox
和secondbox
保存到符合max1max1box
的框和符合max2的框的指针变量,max2box
在逻辑指示切换最大值的情况下,只需切换指针即可
var max1box = document.getElementById('length'),
max2box = document.getElementById('width');
max1 = 100;
min1 = 20;
max2 = 200;
min2 = 10;
max1box.addEventListener('change',validateValues);
max2box.addEventListener('change',validateValues);
function validateValues() {
if (this == max1box && this.value > max1 && this.value > max2box.value)
{
max1box = max2box;
max2box = this;
}
if (max1box .value > max1) {
max1box .value = max1;
}
if (max1box .value < min1) {
max1box .value = min1;
}
if (max2box.value > max2) {
max2box.value = max2;
}
if (max2box.value < min2) {
max2box.value = min2;
}
}
var max1box=document.getElementById('length'),
max2box=document.getElementById('width');
max1=100;
min1=20;
max2=200;
min2=10;
max1box.addEventListener('change',validateValue);
max2box.addEventListener('change',validateValue);
函数validateValues(){
if(this==max1box&&this.value>max1&&this.value>max2box.value)
{
max1box=max2box;
max2box=这个;
}
如果(max1box.value>max1){
max1box.value=max1;
}
如果(最大1盒值<最小1){
max1box.value=min1;
}
如果(max2box.value>max2){
max2box.value=max2;
}
if(max2box.value
你可以在这里看到它的作用:
切换的规则可能并不完全符合您的需要,但您可以从这里开始。如果我理解正确,您真正想要的是在水平或垂直布局中限制大小?是,虽然我在这里寻找的是一种在值较高时覆盖设置最大值的方法。无论值是什么,都覆盖最大值?在当前设置中,400是否合法?如果有人输入400或任何高于200的值,则该框应自动获得最高最大值,而另一个框将被更改为符合最低最大值(如果已超过该值)。我无法使其工作。在你的例子中,我可以键入我喜欢的任何内容,甚至超过最大值。理论上,当我离开盒子时,它应该下降到200,但我输入了“125258”,它仍然存在。。。你用的是什么浏览器?在JSFIDLE中它对你有用吗?我正在使用Firefox——刚刚在IE中测试过,它可以工作。有没有可能让它也在FF中工作,Variant?而且,似乎只有“Width”框能够覆盖所有。也就是说,如果我键入宽度为200,则无法通过输入高值使长度框变为最大值。反之亦然。