jQuery 美元金额的移动滑块

jQuery Mobile Slider for dollar amounts

我想知道是否有人知道如何修改 jQuery 移动滑块以显示美元金额?或者至少始终显示 2 个小数点。即,如果用户选择 10,我希望它显示 10.00 而不是 10。在我当前的 HTML 下面,如果用户选择 10,它只是四舍五入为 10,没有任何小数点。

我尝试了以下带有和不带美元符号前缀的代码,每次更改滑块位置时,它只是将滑块重置为最小值 8.15。

我开始认为我正在寻找的东西无法完成,但我很好奇是否有人知道如何做到这一点....

jQuery

    $(function() {
        $('#mySlider').on( 'slidestop', function( event ) {
            var amt = parseFloat($('#mySlider').value);
            $('#mySlider').val('$' + amt.toFixed(2));
            $('#mySlider').slider('refresh');
        });
    });

HTML

<input type='range' name='mySlider' id='mySlider' min='8.15' max='16.00' value='<?php echo $startWage; ?>' data-popup-enabled='true' step='0.05'>

实现此目的的一种方法是隐藏输入并在其位置使用您自己的文本框。

我已将滑块标记放置在命名容器中,并向容器添加了一个将显示美元金额的输入:

<div id="theDollars" class="dollar-slider">
    <label for="mySlider">Dollars:</label>
    <input type="range" name="mySlider" id="mySlider" data-highlight="true" min="8.15" max="16" value="10" data-popup-enabled='true' step='0.05' />
    <input type="text" data-role="none" class="dollarLabel ui-shadow-inset ui-body-inherit ui-corner-all ui-slider-input" value=".00" disabled />
</div>

在 CSS 中,我隐藏了现有输入,然后将新输入放在旧输入的位置:

.dollar-slider input[type=number] {
    display: none; 
}
.dollar-slider .dollarLabel{
    position: relative;
    top: -38px;
    width: 50px;
}

然后在代码中,处理滑块的更改事件,将值转换为所需的美元字符串 ($10.00):

$("#mySlider").on("change", function(){
    var dollars = '$' + parseFloat($(this).val()).toFixed(2);
    $("#theDollars .dollarLabel").val(dollars);
    $("#theDollars .ui-slider-popup").html(dollars);
    $("#theDollars .ui-slider-handle").prop("title", dollars);
});

DEMO