我有一个相当简单的表单,其中包含一个 HTML5 范围元素(呈现为滑块)。代码如下所示:
<form name="redform" id="redform" action="/">
<input id="id" name="id" type="hidden" value="<?php echo $row['id']; ?>" />
<input id="sliderRed" name="sliderRed" type="range" value="<?php echo $data[5]; ?>" min="0" max="255" />
</form>
<p class="note">Current value: <span id="redValue">0</span></p>
<div style="text-align:center; color:#FF0000" id="redresults"></div>
随之而来的是一些 jQuery,它在滑块移动时执行外部 php 脚本:
$(function(){
var redValue = $('#redValue');
$('#sliderRed').change(function(){
redValue.html(this.value);
});
$('#sliderRed').mouseup(function(){
$.post('process.php', $("#redform").serialize(), function(data) {
$('#redresults').html(data);
$('#redresults').fadeIn('slow').delay(2000).fadeOut('slow');
});
});
$('#sliderRed').change();
});
所有这些都有效。我可以移动滑块,实时更新值,释放滑块时运行 PHP 脚本。这就是奇怪的地方。范围滑块的最大值和最小值设置为 0 和 255。但是,有时,当将滑块一直拖动到一端时,它只会达到 1 或 254。似乎没有任何模式到何时有时候是这样的。有时它会走全范围,有时它不能一路走。甚至在按住鼠标并前后拖动鼠标时也是如此。
如果将最大值和最小值分别更改为 256 和 -1,则会观察到类似的行为。有时它会在 256 时达到最大值,有时它会在 255 时达到最大值。在底端,它有时会达到 -1,有时它只能被拖到 0。这对我来说表明它没有与实际数字有关,但有一些奇怪的“一对一”错误。
对此有什么想法吗?我完全被难住了...