2011-06-03 41 views
0

我有一個包括城市在內的一組輸入的表單。其他輸入或者需要根據用戶選擇的城市來顯示或隱藏。Javascript/JQuery從多個輸入創建一個數組,然後檢查它們與其他數組

我有兩個數組:

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個城市)。

什麼是有效的方式來創建一個數組,並檢查它與其他數組,然後做一些事情,如果他們匹配?

感謝, 布賴恩

+0

很難看到你想要在這裏實現什麼,你能提供一些代碼http://jsfiddle.net – 2011-06-03 14:30:55

+0

用戶如何用'type ='hidden''選擇城市? – Flash 2011-06-03 14:32:26

+0

@andrew im模仿帶UL的選擇框並在li上設置輸入值點擊 – brianandrich 2011-06-03 14:35:43

回答

0

檢查每個城市輸入和隱藏相應的元素:

$("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_inputhide_cars_input隱藏我假設的輸入是你代碼中的其他地方。

結果是,如果您有任何class=city隱藏輸入包含biking_cities中的元素,則騎車輸入會隱藏,並且類似地cars_cities

+0

謝謝,這個作品很棒! – brianandrich 2011-06-03 15:12:52

1

我真的需要一個稍微不同的方式,並使用一個基本的JavaScript對象:

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

然後,您可以訪問數據,例如:

if(cities.newyork.bikes){} 
if(cities.newyork.cars){} 

或者,在一個循環中:

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

嗨馬特。謝謝!這是一個很好的方法。 – brianandrich 2011-06-03 15:15:09

相關問題