Ответ 1
$('input[type=range]').on('input', function () {
$(this).trigger('change');
});
Это вызывает событие change
для каждого события input
.
Эй, у меня немного проблем с jquery и диапазоном hmtl5. Я пытаюсь получить значения по мере их изменения, но прослушиватель событий не захватывает его. В настоящее время мой код:
HTML
html += '<li>Apply Credits: <input type="range" min="0" max="'+credits+'" name="discount_credits" id="discount_credits" /> <span>'+credits+'</span></li>'
И JS:
$('#discount_credits').mousewheel( function() {
alert('it changed!');
alert('new value = ' + $(this).val());
});
Я также пробовал
$('#discount_credits').change( function() {
alert('it changed!');
alert('new value = ' + $(this).val());
});
Ничего не работает. Я что-то делаю неправильно?
$('input[type=range]').on('input', function () {
$(this).trigger('change');
});
Это вызывает событие change
для каждого события input
.
Кажется, что проблема не связана с HTML5 <input type="range">
с помощью change
.
Смотрите: http://jsfiddle.net/DerekL/BaEar/33/
Я предполагаю, что ваш диапазон имеет id: <span id="slidernumber">...</span>
Предположим также, что у вас есть несколько слайдеров, и вы хотите увидеть изменение текста, если какой-либо из них был перемещен:
<li>
Apply Credits1:
<input type="range" min="0" max="100"
name="discount_credits1" id="discount_credits"
/>
</li>
<li>
Apply Credits2:
<input type="range" min="0" max="100"
name="discount_credits2" id="discount_credits"
/>
</li>
<span id="slidernumber">50</span>
Попробуйте следующее:
$(document).ready(function(){
$("[type=range]").change(function(){
var newval=$(this).val();
$("#slidernumber").text(newval);
});
});
http://jsfiddle.net/MahshidZeinaly/CgQ5c/
Теперь предположим, что у вас несколько слайдеров, но вы хотите увидеть изменение текста, если какой-то из них был перемещен. (Я предполагаю, потому что вход диапазона находится внутри тега li, и вы дали ему имя):
<li>
Apply Credits1:
<input type="range" min="0" max="100"
name="discount_credits1" id="discount_credits"
/>
<span id="slidernumber">50</span>
</li>
<li>
Apply Credits2:
<input type="range" min="0" max="100"
name="discount_credits2" id="discount_credits"
/>
<span id="slidernumber">50</span>
</li>
Попробуйте следующее:
$(document).ready(function(){
$("[type=range]").change(function(){
var newv=$(this).val();
$(this).next().text(newv);
});
});
Кажется, что для меня изменилось событие: http://jsfiddle.net/zV3xD/7/
<input type="range" min="0" max="100" name="discount_credits" id="discount_credits" />
<span id="newValue" value="0">0</span>
$('#discount_credits').change( function() {
var newValue = this.value;
$('#newValue').html(newValue);
});
Или вы можете попробовать что-то вроде this:
<form oninput="result.value=parseInt(a.value)">
<input type="range" name="a" value="50" /> =
<output name="result">0</output>
</form>
Используя пример output
здесь: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/output
Исправлено несколько тестов и ошибок!
$('input[name=form_range]').change('mousestop',function () {
});