Вы проводите сравнение string со строками цифр, что может быть удивительно. Например, "20" > "5"
является ложным, потому что "5"
больше, чем "2"
.
Я подозреваю, что именно это застает вас врасплох. Преобразование в число перед выполнением сравнения:
var value = +$("#temp").val();
// −−−−−−−−−^
if (value > 40) {
// ^−−−−−− no quotes
$('#btn').prop('disabled', true);
} else if (value > 0) {
// No quotes −−−−−−^
$('#btn').prop('disabled', false);
}
Существует множество различных способов преобразования строк в числа. Выше я использую унарный +
, но см. Мой ответ здесь для получения полного списка с плюсами и минусами.
Я должен отметить, что это кажется странным отключить вход при значении> 40, но включить его только при значении 1-39. Возможно
$("#btn").prop("disabled", +$("#temp").val() > 40);
Это отключит, когда значение> 40, включит, когда оно <= 40. </p>