Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.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
Php 2个盒子,2个动态最大值在设置一个时发生变化_Php_Javascript - Fatal编程技术网

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
保存到符合max1
max1box
的框和符合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,则无法通过输入高值使长度框变为最大值。反之亦然。