Javascript / JQuery создает массив из нескольких входов, а затем проверяет их по другим массивам - PullRequest
0 голосов
/ 03 июня 2011

У меня есть форма с кучей входов, включая города. Другие входные данные либо должны отображаться, либо скрываться в зависимости от выбранных пользователем городов.

У меня есть два массива:

var biking_cities = ['newyork',];
var cars_cities = ['newyork','newjersey','metronorth','longisland','boston','chicago','sanfrancisco','london','paris','washington',];

Так что, если какой-либо из городов = Нью-Йорк, то велосипедные данные должны быть скрыты. То же самое для "автомобилей".

Городские входы все выглядят так:

<input class="city" type="hidden" name="city1" value="foo">
<input class="city" type="hidden" name="city2" value="foo">

И т. Д. (Максимум 9 городов).

Какой эффективный способ создать массив и сравнить его с другими массивами, а затем сделать что-то в случае их совпадения?

Спасибо, Brian

Ответы [ 2 ]

1 голос
/ 03 июня 2011

На самом деле я бы использовал немного другой подход и использовал бы базовый объект JavaScript:

var cities = {
  newyork : { bikes: false, cars: true} 
  newjersey : { bikes: true, cars: true }
  // etc
};

Затем вы можете получить доступ к данным следующим образом:loop:

for(var cityName in cities){
   if(cities[cityName].bikes){ }
   if(cities[cityName].bikes){ }
}

Что касается сокрытия или отображения входных данных, трудно сказать, учитывая ваш ограниченный пример.Но скрытие / отображение с помощью jQuery выглядит следующим образом:

<input class="city bikes" type="hidden" name="city1" value="foo">
<input class="city cars" type="hidden" name="city1" value="foo">

И JS:

$('city.bikes').hide();
$('city.cars').show();
0 голосов
/ 03 июня 2011

Проверьте каждый вход города и скройте соответствующие элементы:

$("input.city").each(function() {
    if (biking_cities.indexOf($(this).val()) != -1) hide_biking_input();
    if (cars_cities.indexOf($(this).val()) != -1) hide_cars_input();
});

Где hide_biking_input и hide_cars_input скрывают входные данные, которые, как я полагаю, находятся в другом месте вашего кода.

Результатявляется то, что если любой из class=city скрытых входов, которые у вас есть, содержит элемент в biking_cities, велосипедный ввод скрыт и аналогично для cars_cities.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...