Javascript验证两个文本框

Javascript验证两个文本框,javascript,jquery,Javascript,Jquery,我有两个文本框 一个文本框为最小值,另一个文本框为最大值 我想确保用户在最大文本框中输入的值比在最小文本框中输入的值大。此外,如果用户输入的一个文本框即将进入下一个文本框,则可能会处理这种情况。如何有效地完成此项工作。最简单的方法是将值分配给变量并对其进行测试: function checker(){ var min = document.getElementById("min").value ; var max = document.getElementById("max").value

我有两个文本框

一个文本框为最小值,另一个文本框为最大值


我想确保用户在最大文本框中输入的值比在最小文本框中输入的值大。此外,如果用户输入的一个文本框即将进入下一个文本框,则可能会处理这种情况。如何有效地完成此项工作。

最简单的方法是将值分配给变量并对其进行测试:

function checker(){

var min = document.getElementById("min").value ;

var max = document.getElementById("max").value ;

  if(min > max){

    alert('min is more than max');

  }

}
然后将检查器添加到输入的
onchange

<input type='text' id='min' onchange='checker();' />
<input type='text' id='max' onchange='checker();' />

当用户离开min文本框时,将调用该函数。。。如果最小值大于最大值,将出现弹出窗口。(您不必使用弹出窗口,但由您决定)


首先,您需要将两个文本框元素存储在变量中,以便以后可以访问它们的值:

var min = document.getElementById('min'),
    max = document.getElementById('max');
然后,需要一个函数来验证这两个框。除非两个框都包含值,否则不应运行此函数(以避免出现您提到的用户尚未填写两个框的情况)

对于函数内部的实际验证,您需要在输入框和中获取文本字符串。获得这两个数字后,您可以比较它们的值,并在出现问题时提醒用户:

function validate() {
    var minValue, maxValue;

    if (!min.value || !max.value) {
        return;
    }

    minValue = parseFloat(min.value);
    maxValue = parseFloat(max.value);

    if (minValue >= maxValue) {
        alert('Min Value must be smaller than Max Value!');
    }
}
最后要做的是决定何时运行此函数。您可能希望在任一文本框失去焦点(onblur)时运行它


有关完整的工作示例,请参见。

到目前为止您都做了些什么?请出示一些代码@选民:不知道不是犯罪+1因为您的下一票。这里的checker()函数不会更新最小和最大元素的值。谢谢,我不知道我在想什么。正如他们所说的位置,位置,位置。-1,这个函数将运行,即使两个框中没有输入值,OP特别希望避免。而且,几乎没有什么解释。你到底应该做什么?我去掉了“酷”这个词。希望我没有太冒犯你,迈克尔。如果你觉得你有一个比我更好的答案,那就发吧。我一点也没有生气,我只是不知道你的答案到底是怎么回事。老实说,我确实认为我有一个比你更好的答案,而且这个答案已经发布了一段时间了。-1:这个函数没有将值解析为数字,因此您只能使用Javascript反直觉的数字强制行为进行比较。例如,看到这个提琴:您可能想用
parseFloat
s替换那些
parseInt
s。如果用户在最小值字段中输入2.5,在最大值字段中输入2.6,该怎么办?它将抛出,因为值是“相同的”。不过,+1是一个很好的解释@泰斯拉尼克,打得好。我不知道为什么我做出了危险的假设,我们是在处理整数。
var min = document.getElementById('min'),
    max = document.getElementById('max');
function validate() {
    if (!min.value || !max.value) {
        return;
    }
    // ... do the validation
}
function validate() {
    var minValue, maxValue;

    if (!min.value || !max.value) {
        return;
    }

    minValue = parseFloat(min.value);
    maxValue = parseFloat(max.value);

    if (minValue >= maxValue) {
        alert('Min Value must be smaller than Max Value!');
    }
}
min.onblur = validate;
max.onblur = validate;