Javascript 比较两个输入字段

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/12058081/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-23 07:01:26  来源:igfitidea点击:

Comparing two input fields

javascripthtml

提问by suva

I have this function which i am using to compare two input fields. If the user enters the same number in both the text field. On submit there will be an error. Now i would like to know if there is a way to allow same number but not higher than or lower the value of the previous text box by 1. For example if user enters 5 in previous text box, the user can only input either 4, 5 or 6 in the other input field.Please give me some suggestions.

我有这个功能,我用它来比较两个输入字段。如果用户在两个文本字段中输入相同的数字。提交时会报错。现在我想知道是否有一种方法可以允许相同的数字但不高于或低于前一个文本框的值 1。例如,如果用户在前一个文本框中输入 5,则用户只能输入 4,其他输入字段中的 5 或 6。请给我一些建议。

   <script type="text/javascript">
function Validate(objForm) {
var arrNames=new Array("text1", "text2");
var arrValues=new Array();
for (var i=0; i<arrNames.length; i++) {
var curValue = objForm.elements[arrNames[i]].value;
if (arrValues[curValue + 2]) {
alert("can't have duplicate!");
return false;
}
arrValues[curValue] = arrNames[i];
}
return true;
}
</script>

<form onsubmit="return Validate(this);">
<input type="text" name="text1" /><input type="text" name="text2" /><button type="submit">Submit</button>
</form>

回答by LmC

A tidy way to do it which is easy to read:

一种易于阅读的整洁方法:

var firstInput = document.getElementById("first").value;
var secondInput = document.getElementById("second").value;

if (firstInput === secondInput) {
    // do something here if inputs are same
} else if (firstInput > secondInput) {
    // do something if the first input is greater than the second
} else {
    // do something if the first input is less than the second
}

This allows you to use the values again after comparison as variables (firstInput), (secondInput).

这允许您在比较后再次使用这些值作为变量 (firstInput)、(secondInput)。

回答by su-

Here's a suggestion/hint

这是一个建议/提示

if (Math.abs(v1 - v2) <= 1) {
    alert("can't have duplicate!");
    return false;
}

And here's the jsfiddlelink, if you want to see the answer

如果你想看答案,这里是jsfiddle链接

回答by Zeke Alexandre Nierenberg

Give them both IDs.

给他们两个ID。

Then use the

然后使用

if(document.getElementById("first").value == document.getElementById("second").value){
    //they are the same, do stuff for the same
}else if(document.getElementById("first").value >= document.getElementById("second").value
    //first is more than second
}

and so on.

等等。