我有這個部分,用戶可以定義他/她從網站獲取的搜索結果的過濾。切換禁用/啓用3個相關輸入文本框
- 硬盤價格($)硬盤(GB)的
- 容量
- 最大的。每GB成本(美元/ GB)
所有3個都可以由用戶更改。但是,由於有2個獨立變量定義3個值,因此單獨選擇3個過濾器值可能會產生0個結果。即。 $300 harddisk, 100GB & Lesser than $1/GB
。解決方案是隻允許用戶在任何時候更改3個過濾器選項中的任意兩個,並自動確定第三個過濾器的值。
問題:我需要這樣的使能/禁止的行爲:當用戶選擇濾波器#1(price of harddisk = $100
)然後過濾#2(harddisk capacity = 100GB
),當他選擇用於濾波器#3($5/GB
)的值,# 1會自動重新計算到$500
。如果他要更換過濾器#1(harddisk cost = $200
),則過濾器#2將根據過濾器#1和#3更改爲Capacity of Harddisk = $40
。
如何在jQuery/Javascript中實現這一點?
我的想法:可以使用類似於僅包含2個值的堆棧,按照篩選器的選擇順序。當用戶選擇過濾器#1然後選擇#2時,堆棧包含{1,2},因此將使用過濾器#1和#2計算過濾器#3。當用戶選擇#3時,1被推出堆棧,3進入導致{2,3},所以過濾器#1將使用過濾器#2和#3進行計算。然而,似乎有些東西可能會出錯用這種方法...
是有一定的順序,你會希望它覆蓋以前輸入的值:匹配DIV可以通過傳遞適當的div名稱到一個簡單的函數像這樣顯示?在你的例子中,在輸入1和2之後,加上3就可以覆蓋1,在這種情況下它可以覆蓋2嗎? – Marlin
它將覆蓋2的較老的值。因此,在您指出的情況下,它只能覆蓋1,因爲先選擇了1,然後再選擇了2。 – Nyxynyx