0

我正在 MVC4 中编写一个时间注册移动应用程序,并且我正在使用滑块输入类型。

<input type="range" name="time_verdi" id="slider" value="7.5" min="0.0" max="24" step="0.5" data-highlight="true"/>

这会产生一个滑块,以及滑块左侧的文本框。但是,我希望用户能够输入他们自己的值,例如 7.25 小时。这现在可以完成,但是当焦点离开文本框时,它会从 7.25 小时到 7 小时进行验证。有没有办法不验证文本框?我有服务器端验证。谢谢。

4

2 回答 2

1

我认为您不能仅使用与步长增量不匹配的输入值来驱动范围滑块,因为框架代码完全取决于您提供的步长(0.5),它总是会四舍五入到最接近的步长值,并且如果你去掉这段代码,它只会通过文本框值而不是通过滑块移动。请重新访问您的要求。

原始代码:

//from jQuery UI slider, the following source will round to the nearest step
var valModStep = ( newval - min ) % step;
var alignValue = newval - valModStep;

if ( Math.abs( valModStep ) * 2 >= step ) {
    alignValue += ( valModStep > 0 ) ? step : ( -step );
}
var percentPerStep = 100/((max-min)/step);
// Since JavaScript has problems with large floats, round
// the final value to 5 digits after the decimal point (see jQueryUI: #4124)
newval = parseFloat( alignValue.toFixed(5) );
于 2013-09-12T11:42:00.353 回答
0

我在输入文本框时使用了javascript来更改步骤:

    <script type="text/javascript">
        $(document).on("pageinit", "#registrerPage", function (event) {

            $('#slider').focus(function () {
                document.getElementById("slider").step = ".1";
            });
        });
    </script>
于 2013-09-13T11:53:59.647 回答