Javascript Slider 问题,基于下拉菜单输出结果

标签 javascript jquery html css

Fiddle here!

你好,

我需要一些帮助来解决一个非常简单的 Javascript 问题。我正在做一个基于 4 个不同变量的 slider 。我已将其简化为将它们显示为服务器 E 到服务 G。每项服务每平方米的价格不同,但我不希望所有服务都显示在屏幕上。我希望输出来自下拉列表的选择。

$(function() {
    $( "#slider" ).slider({
        value:10,
        min: 0,
        max: 60,
        step: 1,
        slide: function( event, ui ) {
            $( "#amount" ).val( ui.value );
            $( "#d" ).val( "£" + ui.value * 750 );
            $( "#e" ).val( "£" + ui.value * 800 );
            $( "#f" ).val( "£" + ui.value * 900 );
            $( "#g" ).val( "£" + ui.value * 1125 );
        }
    });
});

而不是#e #d 等,我喜欢#totalPrice,它基于他们从下拉列表中选择的选项

<option></option>
<option>Service D</option>
<option>Service E</option>  
<option>Service F</option>
<option>Service G</option>

是否可以在 Javascript 变量中创建这些变量,然后以 HTML 输出(无论选择哪个变量)。希望我让每个人都变得简单。任何帮助将不胜感激:)

Fiddle here!

最佳答案

您可以做几件事。一个相对简单和干净的方法是这样的:

首先,用每单位表面的价格标记每个服务选项。您可以使用 HTML5 数据属性执行此操作:

<option data-unit-value="750">Service D</option>
<option data-unit-value="800">Service E</option>  
<option data-unit-value="900">Service F</option>
<option data-unit-value="1125">Service G</option>

然后从 slide 处理程序中引用所选选项并获取要包含在计算中的单位值:

// not included: rigorous checks (e.g. what happens if nothing selected?)
var unitValue = $("#myList > :selected").attr("data-unit-value");
$("#amount" ).val(ui.value);
$("#total").val("£" + ui.value * unitValue);

最后不要忘记,更改下拉列表中的选定值也会导致总数更新:

$("#myList").change(function() {
    var unitValue = $("#myList > :selected").attr("data-unit-value");
    $("#total").val("£" + $("#slider").slider("value") * unitValue);
});

Updated fiddle .

关于Javascript Slider 问题,基于下拉菜单输出结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19421966/

相关文章:

javascript - 如何使用 javascript 检查 .ASPXAUTH cookie 是否存在

javascript - 如何使用附加的 HTML 淡入 div

javascript - 页面加载时 jquery shake 不工作

javascript - 继续执行脚本之前等待 AJAX 响应

javascript - 为什么 ajax 响应代码没有正确附加?

Javascript:根据文本调整输入字段宽度

javascript - jQuery KeyUp() 问题

javascript - 在循环中的仪表板 ui_template (node-red) 中创建复选框并将检查状态分配给输出 msg.payload

javascript - Reactjs - 无法修改输入

javascript - CSS Grid - 突出显示单元格直到悬停的单元格