jQuery滑块和输入的问题



我想让我的第一个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的输入中写入内容时,什么也没有发生。不过,滑块工作完美。你可以测试一下http://vpopulus.tk/damage

EDIT:当你编辑输入时,滑动条也会随之改变

我认为您的选择器$('#str')是问题所在,因为您的输入没有ID #str,而只是一个具有值"str"的名称属性。正确的选择器是$('input[name="str"]')

编辑:

实际的问题是这个SpecialRound函数,因为您在这里使用了一个不存在的函数"round()"。用这个代替:

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

如果我是你,我会使用change事件而不是keyup

例如:

$( "#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;

相关内容

  • 没有找到相关文章

最新更新