Javascript jQuery滑块和输入的问题

Javascript jQuery滑块和输入的问题,javascript,jquery,jquery-slider,Javascript,Jquery,Jquery Slider,我正在尝试制作我的第一个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", "valu

我正在尝试制作我的第一个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");
  }
 }
}
});
$(“#str”).keyup(函数(事件){
var数据=$(“#str”).val();
如果(数据长度>0)
{
var intdata=specialrund(parseFloat(data));

如果(intdata>=0&&intdata,我认为您的选择器
$(“#str”)
是问题所在,因为您的输入没有ID#str,只有一个值为“str”的name属性。正确的选择器应该是
$(“input[name=“str”]”)

编辑: 实际问题是这个特殊的round函数,因为您使用的是一个不存在的函数“round()”。请改用这个函数:

//Special round
function SpecialRound(f) {
   return Math.round(f*100) / 100;
}

我认为您的选择器
$('#str')
是个问题,因为您的输入没有ID#str,只有一个值为“str”的name属性。正确的选择器应该是
$('input[name=“str”]”)

编辑: 实际问题是这个特殊的round函数,因为您使用的是一个不存在的函数“round()”。请改用这个函数:

//Special round
function SpecialRound(f) {
   return Math.round(f*100) / 100;
}

如果我是你,我会使用更改事件而不是键控

例如:

$( "#str" ).change(function() {
    var val = this.val(); // you can do your rounding here then...
    $("#str_slider").slider( "value", val );
});

如果我是你,我会使用更改事件而不是键控

例如:

$( "#str" ).change(function() {
    var val = this.val(); // you can do your rounding here then...
    $("#str_slider").slider( "value", val );
});

通过查看您的测试页面,您可以看到SpecialRound中的第54行

var r=round(f*100)/100;
那应该是

var r=Math.round(f*100)/100;

通过查看您的测试页面,您可以看到SpecialRound中的第54行

var r=round(f*100)/100;
那应该是

var r=Math.round(f*100)/100;

啊,对不起。我混合了一些旧代码和新代码。但是你可以在第232行看到我的ID。好的,没有看到第二个输入,对不起。你的特殊的round()函数是问题所在,你在那里使用了
round()
,但它实际上是
Math.round()
。啊,你没有把你的代码放进去(将事件侦听器绑定到keyup事件的侦听器)进入onReady事件监听器,以便在DOM准备好执行此类操作时执行。现在,jQuery尝试将事件监听器绑定到在执行代码时尚未显示的输入。明白我的意思吗?啊,对不起。我将一些旧代码与新代码混合在一起。但是您可以在第232行看到我有ID。好的,d很抱歉,我看不到第二个输入。问题出在您的specialRound()函数上,您使用的是
round()
,但实际上是
Math.round()
。啊,您没有放入代码(将事件侦听器绑定到keyup事件的代码)进入onReady事件监听器,以便在DOM准备好执行此类操作时执行。现在,jQuery尝试将事件监听器绑定到代码执行时尚未出现的输入。明白我的意思吗?哦,这只是一个我用来舍入到两位小数的函数。哦,这只是一个我用来舍入到的函数两位小数。