Задать вопрос
yar-ikarus
@yar-ikarus
Аномалия

Как отследить событие изменения в input (change почему то не работает)?

Есть jquery-ui ползунок.
35367140e3.jpg
А так же существует
input[name='containers-count']
в который передается значение из этого ползунка.

Мне нужно отследить произошло ли изменение внутри input. Моя попытка сделать это выглядит вот так
$("input[name='containers-count']").change ->
		console.log "TEST"

Это дело почему то не срабатывает.

Скажу так же что скрипт самого UI лежит тупо в коде страницы, и представляет из себя вот что
1b091b07a7.jpg
А уже дальнешие манипуляции я делаю из другого файла (сделанного через кофейник).

То есть почему то .change нормально срабатывает в первом случае а во втором случае он нифига не срабатывает.

Не знаю, может быть тут есть какой то прикол с областью видимости или типа того? В общем что можно тут сделать? Может быть есть какое то другое событие которое может отловить состояние value у input?

update: так, я понял, оно и в первом случае не пашет, кофейник тут точно не причем)) однако вопрос остается открытым, как событие то отследить?
  • Вопрос задан
  • 9873 просмотра
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
0x9d8e
@0x9d8e
Велосипедостроитель в терминальной стадии
Можно ещё, если уж очень хочется change, в slide добавить $('#amount').trigger('change'); И заработает :)
Но вообще да, лучше просто событие slide юзать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
nepritimov_m
@nepritimov_m
Frontend dev.
В таком виде change срабатывает при клике на enter.
HTML:
<input id="foo" type="text" />
JS:
$(function () {
    $('#foo').on('change', function () {
        console.log('change');
    });
});


Если вам надо, чтобы проверка была при любом клике, то вот:
$(function () {
    $('#foo').on('keydown', function () {
        console.log('change');
    });
});
Ответ написан
atomheart
@atomheart
Пишу на Python за карму и за деньги
Есть еще событие keydown.
Ответ написан
Isolution666
@Isolution666
Full-Stack Developer
Я понял в чём проблема )))
Вам не поможет здесь никакой change
Надо обращаться к самой функции bootstrap-slider https://seiyria.com/bootstrap-slider/
Где ясно дают понять, к какой переменной надо обращаться, чтобы её получить, например

$('#slider').slider({
    formatter: function(value) {

        var x  = value;
        var d  = 0.015;
        var m  = x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); // при форматировании числа с запятой 1,000,000
        var one  = x * Number(d); // умножение с нецелыми числами

        $('#text').html(x + ' $');
        $('#return').html(one.toFixed().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); // если надо округлить не целое число 4.554849 и вставить запятые как в m

        return z;
        
    }
});


Как выводить подобное, я думаю вы поняли, а если нет, то:
<div id="text"></div>
<div id="return"></div>


И всё, ничего больше не нужно. )) Успехов вам. ;-)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы