Проверка значения в input
Здравствуйте. Помогите разобраться.
Нужно проверить значение в input согласно элементам массива и создать столько условий сколько элементов в массиве. Есть два массива: var cities = ["Симферополь", "Симферополь"]; var cities2 = ["Коктебель", "Алушта"]; Вот кусочек кода:
if ((jQuery("#from").val().indexOf("Симферополь") !== -1) && (jQuery("#to").val().indexOf("Коктебель") !== -1)) {
var curPrice = 2000;
} else if ((jQuery("#to").val().indexOf("Симферополь") !== -1) && (jQuery("#from").val().indexOf("Коктебель") !== -1)) {
var curPrice = 2000;
} else if ((jQuery("#from").val().indexOf("Симферополь") !== -1) && (jQuery("#to").val().indexOf("Алушта") !== -1)) {
var curPrice = 1000;
} else if ((jQuery("#to").val().indexOf("Симферополь") !== -1) && (jQuery("#from").val().indexOf("Алушта") !== -1)) {
var curPrice = 1000;
} else {
var curPrice = +(jQuery("#price" + jQuery("#class").val()).val()) * Math.floor(length);
}
|
farikweb,
includes |
Если Симферополь всегда в условии зачем же это проверять, проверять только Алушта и Коктебель, и достаточно одного условия.
|
Цитата:
При проверке есть ньюанс, например порядковый номер условии должен совпадать с индексом массива. |
Цитата:
1) Определили цену как сумму двух полей. 2) Получили значения проверяемых полей. 3) Если в полученном есть значение Симферополь, то проверяем второе значение: если оно равно Алушта, то цену определяем равной 2000 и если более нет городов, то иначе 1000. Иначе проверяем и на Коктебель. 4) Иначе цена остается ранее определенной.
let price = 500, //цена по значениям двух полей
check = 'Симферополь',
values = [check, 'b']; //значения проверяемых полей как массив
if(values.includes(check)){
values = values.filter(v => v !== check).pop();
price = values == 'b' ? 2000 : values == 'c' ? 1000 : price;
}
console.log(price);
|
farikweb,
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="http://" name="form">
<label for="from">from:</label>
<input list="from-city" id="from" name="from" />
<datalist id="from-city">
<option value="Симферополь">
<option value="Коктебель">
<option value="Алушта">
</datalist>
<label for="to">to:</label>
<input list="to-city" id="to" name="to" />
<datalist id="to-city">
<option value="Симферополь">
<option value="Коктебель">
<option value="Алушта">
</datalist>
<output></output>
</form>
<script>
document.addEventListener("DOMContentLoaded", function() {
let form = document.forms.form;
let msg = document.querySelector("output");
const Price = {
"Симферополь-Коктебель" : 2000,
"Коктебель-Симферополь" : 2000,
"Симферополь-Алушта" : 1000,
"Алушта-Симферополь" : 1000
};
const choice = function(event) {
let from = form.from.value;
let to = form.to.value;
let key = `${from}-${to}`;
let curPrice = key in Price ? Price[key] : 0;
msg.innerHTML = curPrice;
}
form.addEventListener("input", choice)
});
</script>
</body>
</html>
|
Вау, зачем столько много? :D
|
| Часовой пояс GMT +3, время: 13:07. |