我正在尝试制作我的第一个jQuery滑块,我有这个代码:
$("#str").keyup(function(event) {
var data=$("#str").val();
if (data.length>0)
{
var intdata=SpecialRound(parseFloat(data));
if (intdata>=0 && intdata<=20)
{
$("#str_slider").slider("option", "value", data);
}
else
{
if (intdata<0)
{
$("#str").val("0");
$("#str_slider").slider("option", "value", "0");
}
if (intdata>20)
{
$("#str").val("20");
$("#str_slider").slider("option", "value", "20");
}
}
}
});
虽然,我有一个问题。当我使用ID #str在输入中写入内容时,没有任何反应。虽然滑块很完美。 你可以测试att http://vpopulus.tk/damage
编辑:我基本上想要在编辑输入时这样做,滑块也会改变。
答案 0 :(得分:3)
我认为您的选择器$('#str')
是问题,因为您的输入没有ID #str,只是名称属性值为“str”。正确的选择器为$('input[name="str"]')
修改强> 实际问题是这个SpecialRound函数,因为你在那里使用了一个不存在的函数“round()”。请改用:
//Special round
function SpecialRound(f) {
return Math.round(f*100) / 100;
}
答案 1 :(得分:1)
如果我是你,我会使用更改事件而不是keyup
例如:
$( "#str" ).change(function() {
var val = this.val(); // you can do your rounding here then...
$("#str_slider").slider( "value", val );
});
答案 2 :(得分:1)
通过查看您的测试页面,您可以在特殊回合中的第54行
var r=round(f*100)/100;
应该是
var r=Math.round(f*100)/100;