jQuery Slider Bar——尝试根据用户输入设置范围和间隔



这个想法是,有人可以输入他们的医疗账单金额,在取消折扣后,用户现在有一个新的金额需要支付。然后,用户可以选择每月支付多少,直到全额支付。

我想创建一个jQuery滑块,它带有可选择的刻度,可以细分每月付款的选择。例如,如果有人输入他们的医疗账单是1000美元,在20%的折扣后,它将变成800美元,然后我希望800在滑块上被划分为12个刻度,每个值除以月数。第一个勾号为一个月800美元,而最后一个勾号约为12个月66美元。

我试着查看jQuery滑块文档,但我不确定如何根据用户输入聚合范围值。到目前为止,我已经有了用于用户输入的javascript代码,但我不确定如何将其与滑块合并。

如果能在正确的方向上提供任何帮助,我们将不胜感激。非常感谢。

// Have the user input their medical bill amount
var originalAmount = prompt('What is the amount of your medical bill?');
console.log(originalAmount);
// Take off 20% of the medical bill for a discount
var discountAmount = originalAmount * .20;
console.log('Your discount is 20%, which is ' + discountAmount + ' in savings.');
// Declare what the new amount owed is after taking the discount off
var newAmount = originalAmount - discountAmount;
console.log('Your new amount owed for your bill is ' + newAmount + ' .');

您描述的那样实现问题并不容易,因为jQueryUI Slider默认情况下只提供"固定刻度",我记得很多。

因此,我推荐一个不同的方向:

  • 首先,忘记滑块的折扣。Slider应该只为必须支付的实际金额提供支持。折扣只会使事情变得更加复杂而没有好处。在第一步中减去折扣,然后是滑块
  • 这个怎么样:不要提供金额的滑块,而是提供客户想要进行的付款次数:一次付款,两次付款。。。,十二次付款

所以您有一个增量为1的简单滑块。

为了方便客户,当滑块移动时,您可以提供一个只读字段来打印单个付款(例如,12个月的付款为66美元)。

当你真的必须有一个"支付滑块"时:

当然,也有可能自己对"ticks"或"steps"(jQuery文档中如何调用它)进行编程。当然,您可以将付款范围设置为800,将步长设置为1。但是,你必须自己实现蜱虫。

你是怎么做到的:

有一个"变化"事件。您可以为该事件注册一个函数。每次触发事件时,您都必须检查滑块的当前值,而您所做的就是检查滑块的目前位置。当滑块不在所需位置时,请找到最近的位置并更正滑块!

当然,你必须非常小心地做这件事,因为事件可能很棘手。你可能会遇到的一个问题是,如果你得到了一个事件,请更正滑块,因为更正本身就是一个变化,所以你会得到另一个事件。。。。并且你在无休止的事件递归中运行,阻塞了用户的浏览器。你当然应该避免!

你得到的效果可能或多或少是令人满意的。用户可能也会觉得"笨拙",因为台阶的大小不同。如果你最终得到的行为对你的客户来说足够好,你必须尝试。

最新更新