Проблемы со слайдером jQuery и вводом - PullRequest
1 голос
/ 06 сентября 2011

Я пытаюсь сделать свой первый слайдер 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, ничего не происходит. Хотя ползунки работают отлично. Вы можете проверить att http://vpopulus.tk/damage

РЕДАКТИРОВАТЬ: я в основном хочу сделать так, чтобы при редактировании ввода ползунок также изменился.

Ответы [ 3 ]

3 голосов
/ 06 сентября 2011

Я думаю, что ваш селектор $('#str') является проблемой, потому что ваш ввод не имеет идентификатора #str, а только атрибут имени со значением "str".Правильный селектор будет $('input[name="str"]')

РЕДАКТИРОВАТЬ: Фактическая проблема заключается в этой функции SpecialRound, потому что вы используете несуществующую функцию "round ()" там.Используйте это вместо:

//Special round
function SpecialRound(f) {
   return Math.round(f*100) / 100;
}
1 голос
/ 06 сентября 2011

Посмотрев на свою тестовую страницу, вы увидите строку 54 в SpecialRound

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

это должно быть

var r=Math.round(f*100)/100;
1 голос
/ 06 сентября 2011

на вашем месте я бы использовал событие change вместо keyup

например:

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