Проверка значения в 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, время: 20:12. |