Я сталкиваюсь с проблемой при использовании оператора else if в jquery, функция запускается при изменении входного текста в таблице. В таблице есть два диапазона значений Normal и Critical, в зависимости от значений, которые должны изменить цвета фона входного текста. Условия не работают на одном экземпляре.
$("#myTable input").change(function () {
var currentRow = $(this).closest("tr");
var col4 = currentRow.find("td:eq(3)").html();
var col5 = currentRow.find("td:eq(4)").html();
var n_range = col4.split("-");
var c_range = col5.split("-");
inp = $(this).val();
// alert(inp);
if (inp > n_range[0] && inp < n_range[1]) {
//if inp falls in the normal range color white
$(this).css("background-color", "#FFF");
$(this).css("color", "#37474F");
} else if (inp > c_range[0] && inp < c_range[1]) {
//if inp falls in the criticl range color red
$(this).css("background-color", "#FF1744");
$(this).css("color", "#FFF");
} else if (inp < n_range[0]) {
//if inp is higher than noraml range color lightred
$(this).css("background-color", "#FFF176");
$(this).css("color", "#263238");
} else if (inp < c_range[0]) {
//not working
$(this).css("background-color", "#E53935");
$(this).css("color", "#FF5252");
alert(n_range[1]);
} else {
$(this).css("background-color", "#2196F3");
$(this).css("color", "#FFF");
}
});
снимок экрана
Если входное текстовое значение находится в пределах нормального диапазона, цвет фона станет белым(#FFF).
Если введенное текстовое значение меньше нормальных значений, цвет фона станет желтым.
Если значения попадают между критическим диапазоном, цвет станет красным.
Все это работает нормально, но когда значение входного текста превышает обычные значения, цвет фона должен стать светло-красным, но при изменении значения цвет фона меняется на желтый. Для дальнейшего ознакомления проверьте эту скрипку http://jsfiddle.net/Ayan404/xyb764n9/3/