Я хочу сравнить два входа minimumN и maximumN и отобразить предупреждение, если логика не выполняется, у меня есть следующий код:
HTML:
<table>
<tr>
<th>Minimum N</th>
<td>
<input id="minN" onkeyup="MinimumNValidate()" type="text" maxlength="50">
</td>
<th>Maximum N</th>
<td>
<input id="maxN" onkeyup="MaximumNValidate()" type="text" maxlength="50">
</td>
</tr>
</table>
Javascript:
function MinimumNValidate() {
var min = document.getElementById("minN").value;
var max = document.getElementById("maxN").value;
if (min > max) {
alert("Minimum value must be lesser than maximum value.");
}
}
function MaximumNValidate() {
var min = document.getElementById("minN").value;
var max = document.getElementById("maxN").value;
if (max < min) {
alert("Maximum value must be greater than minimum value.");
}
}
но это не работает, и предупреждение отображается, даже если minN меньше maxN, можете ли вы указать на ошибку в моем коде?
Здесь мало
закрыть входные элементы:
if(maxN<min) {
Должно быть
if(max<min) {
Наконец, вы не сравниваете целые числа, а строки так.
5<9
555<9
1000<20
Его "алфавитный"
Вам нужно разобрать их на int.
parseInt(max) and parseInt(min)
...
function MinimumNValidate(){
var min = parseInt(document.getElementById("minN").value);
var max = parseInt(document.getElementById("maxN").value);
if(min > max) {
alert("Minimum value must be lesser than maximum value. " + min + " > " + max );
}
}
function MaximumNValidate(){
var min = parseInt(document.getElementById("minN").value);
var max = parseInt(document.getElementById("maxN").value);
if(max<min) {
alert("Maximum value must be greater than minimum value." + min + " > " + max );
}
}
Во второй функции MaximumNValidate() у вас есть строка кода
if(maxN<min) {
которые должны быть
if(max<min) {
onchange
или добавьте еще несколько проверок);