Jquery mobile 在Jquery Mobile中使用滑块选择时间

Jquery mobile 在Jquery Mobile中使用滑块选择时间,jquery-mobile,jquery-ui-slider,Jquery Mobile,Jquery Ui Slider,我需要用户选择一个时间,滑块似乎是最好的选择,但是,它只针对十进制值。这应该不是问题,因为我可以将它们作为“0:00后的分钟数”线程,但我需要覆盖在inputbox和工具提示中向用户显示的内容 有没有办法用自定义格式覆盖十进制值,因此我将“0:00后的分钟数”转换为8:30这样的可读时间?如果需要单个滑块,请根据需要检查以下代码 如果您需要一个单滑块,那么基于 jQM滑块使用type=number并将输入连接到其代码。因此,解决这个问题的一种方法是隐藏输入,获取其值,转换为您想要的字符串,然后写

我需要用户选择一个时间,滑块似乎是最好的选择,但是,它只针对十进制值。这应该不是问题,因为我可以将它们作为“0:00后的分钟数”线程,但我需要覆盖在inputbox和工具提示中向用户显示的内容


有没有办法用自定义格式覆盖十进制值,因此我将“0:00后的分钟数”转换为8:30这样的可读时间?

如果需要单个滑块,请根据需要检查以下代码


如果您需要一个单滑块,那么基于


jQM滑块使用type=number并将输入连接到其代码。因此,解决这个问题的一种方法是隐藏输入,获取其值,转换为您想要的字符串,然后写入您自己的输入,将其放在旧输入所在的位置

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

<div id="theTime" class="time-slider">
    <label for="sliderTime">Time:</label>
    <input type="range" name="sliderTime" id="sliderTime" data-highlight="true" min="0" max="1444" value="60" />
    <input type="text" data-role="none" class="timeLabel ui-shadow-inset ui-body-inherit ui-corner-all ui-slider-input" value="1:00" disabled />
</div>
然后在代码中,处理更改事件,将分钟转换为时间字符串,并将该字符串写入新输入和滑块控制柄的工具提示:

$(document).on("pagecreate", "#page1", function(){       
    $("#sliderTime").on("change", function(){
        var time = IntToTime($(this).val());
        $("#theTime .timeLabel").val(time);
        $("#theTime .ui-slider-handle").prop("title", time);
    });    
});

function IntToTime(val){
    var hours = parseInt( val / 60 );
    var min = val - (hours * 60);
    var time = hours + ':' + (min < 10 ? '0' + min : min);
    return time;
}
更新:为了选择开始和结束时间,有人对使用范围滑块进行此操作感兴趣。我创建了一个更新的小提琴解决方案:


jQM滑块使用type=number并将输入连接到其代码。因此,解决这个问题的一种方法是隐藏输入,获取其值,转换为您想要的字符串,然后写入您自己的输入,将其放在旧输入所在的位置

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

<div id="theTime" class="time-slider">
    <label for="sliderTime">Time:</label>
    <input type="range" name="sliderTime" id="sliderTime" data-highlight="true" min="0" max="1444" value="60" />
    <input type="text" data-role="none" class="timeLabel ui-shadow-inset ui-body-inherit ui-corner-all ui-slider-input" value="1:00" disabled />
</div>
然后在代码中,处理更改事件,将分钟转换为时间字符串,并将该字符串写入新输入和滑块控制柄的工具提示:

$(document).on("pagecreate", "#page1", function(){       
    $("#sliderTime").on("change", function(){
        var time = IntToTime($(this).val());
        $("#theTime .timeLabel").val(time);
        $("#theTime .ui-slider-handle").prop("title", time);
    });    
});

function IntToTime(val){
    var hours = parseInt( val / 60 );
    var min = val - (hours * 60);
    var time = hours + ':' + (min < 10 ? '0' + min : min);
    return time;
}
更新:为了选择开始和结束时间,有人对使用范围滑块进行此操作感兴趣。我创建了一个更新的小提琴解决方案:


很遗憾,@tronc的可能副本JQuery UI中的滑块与JQuery Mobile中使用的滑块完全不同..我认为您应该使用一些专门用于获取时间的插件,或者@tronc的可能副本JQuery UI中的滑块与JQuery Mobile中使用的滑块完全不同..很遗憾,我认为您不幸的是,一些专门用于获取时间的插件或者JQuery UI中的滑块与JQuery Mobile中使用的插件完全不同..不幸的是,JQuery UI中的滑块与JQuery Mobile中使用的滑块完全不同。。