我有这一部分,用户可以定义他/她从网站获取的搜索结果的过滤。
用户可以更改所有3个。但是,由于有2个独立变量定义3个值,因此单独选择3个过滤器值可能会产生0个结果。即。 $300 harddisk, 100GB & Lesser than $1/GB
。解决方案是只允许用户在任何时候改变3个过滤器选项中的任何2个,并自动确定第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},因此将使用过滤器#2和#3计算过滤器#1。然而,似乎某种方式可能会出现这种方法的问题......
答案 0 :(得分:0)
你也可以为每种可能性设置一个隐藏的div。
<div id="opt1" style="display: none;">
<code to make calculation for option 1>
</div>
所有这些都会以显示值none开始,当他们做出选择并点击计算按钮时,它会启动你的js功能。该函数检查哪两个输入是!= null并使用它们的值来计算和显示它们的答案。可以通过将适当的div名称传递给这样的简单函数来显示匹配的div:
function ShowContent(d)
{
document.getElementById(d).style.display = "block"
}