Это будет работать, если вы измените свою логику, ваши входные значения будут , а не числами , когда внутри ничего не написано, поэтому вы должны использовать isNaN
.
function getFirstNumber()
{
var value1 = document.getElementById("fnumber").value;
var fn = parseInt(value1);
return fn;
}
function getSecondNumber()
{
var value2 = document.getElementById("snumber").value;
var sn = parseInt(value2);
return sn;
}
function getThirdNumber()
{
var value3 = document.getElementById("tnumber").value;
var tn = parseInt(value3);
return tn;
}
function MaxN()
{
var fn = getFirstNumber();
var sn = getSecondNumber();
var tn = getThirdNumber();
if (isNaN(fn) && isNaN(sn) && isNaN(tn)) {
alert('Please input at least one number');
} else if (fn >= sn && fn >= tn){
alert(fn);
} else if (sn >= fn && sn >= tn){
alert(sn);
} else {
alert(tn);
}
}
<div>
<span>First number: </span><input type="text" id="fnumber" />
</div>
<div>
<span>Second number: </span><input type="text" id="snumber" />
</div>
<div>
<span>Third number: </span><input type="text" id="tnumber" />
</div>
<br>
<button type="button" onclick="MaxN()">Max Number</button>
</br>
РЕДАКТИРОВАТЬ , используя другой тип логики, поворачивая NaN
в 0 в начале функции
function getFirstNumber()
{
var value1 = document.getElementById("fnumber").value;
var fn = parseInt(value1);
return fn;
}
function getSecondNumber()
{
var value2 = document.getElementById("snumber").value;
var sn = parseInt(value2);
return sn;
}
function getThirdNumber()
{
var value3 = document.getElementById("tnumber").value;
var tn = parseInt(value3);
return tn;
}
function MaxN()
{
var fn = isNaN(getFirstNumber()) ? 0 : getFirstNumber() ;
var sn = isNaN(getSecondNumber()) ? 0 : getSecondNumber() ;
var tn = isNaN(getThirdNumber()) ? 0 : getThirdNumber() ;
if (fn == 0 && sn == 0 && tn == 0) {
alert('Please input at least one number');
} else if (fn >= sn && fn >= tn){
alert(fn);
} else if (sn >= fn && sn >= tn){
alert(sn);
} else {
alert(tn);
}
}
<div>
<span>First number: </span><input type="text" id="fnumber" />
</div>
<div>
<span>Second number: </span><input type="text" id="snumber" />
</div>
<div>
<span>Third number: </span><input type="text" id="tnumber" />
</div>
<br>
<button type="button" onclick="MaxN()">Max Number</button>
</br>
Последнее, но не менее важное. Что вы должны сделать:
- использовать тип ввода HTML
number
например <input type="number" min="0"
max="1000" step="1" />
- использовать API проверки JavaScript (методы
checkValidity()
, setCustomValidity()
) - внимательно прочитайте различные типы результатов, которые могут появиться во время проверки
- customError Установите в значение true, если установлено пользовательское сообщение о действительности.
- patternMismatch Устанавливается в true, если значение элемента не соответствует его атрибуту pattern.
- rangeOverflow Устанавливается в true, если значение элемента больше, чем его атрибут max.
- rangeUnderflow Устанавливается в значение true, если значение элемента меньше его атрибута min.
- stepMismatch Устанавливается в значение true, если значение элемента недопустимо для его атрибута шага.
- tooLong Устанавливается в значение true, если значение элемента превышаетего атрибут maxLength.
- typeMismatch Устанавливается в true, если значение элемента недопустимо для его атрибута типа.
- valueMissing Устанавливается в true, если элемент (с обязательным атрибутом) не имеет значения.
- valid Устанавливается в true, если значение элемента является действительным.