JQuery Range Input Listener

后端 未结 5 843
-上瘾入骨i
-上瘾入骨i 2021-02-05 03:45

Hey having a little trouble jquery and the hmtl5 range. I\'m try to get the values as they changed but the event listener is not capturing it. Currently my code is:

HTML

相关标签:
5条回答
  • 2021-02-05 04:12

    The on change event seems to be working correctly for me: 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);
    });​
    

    Or you can try something like this:

    <form oninput="result.value=parseInt(a.value)">
        <input type="range" name="a" value="50" /> =
        <output name="result">0</output>
    </form>
    

    Using the output example here: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/output

    0 讨论(0)
  • 2021-02-05 04:21

    Several test and bug fixed!

    $('input[name=form_range]').change('mousestop',function () {
    
    });
    
    0 讨论(0)
  • 2021-02-05 04:22

    I assume your span has an id: <span id="slidernumber">...</span> Lets also assume that you have a few sliders, and you want to see a text change if any of them were moved:

    <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>
    

    Try this:

    $(document).ready(function(){
      $("[type=range]").change(function(){
        var newval=$(this).val();
        $("#slidernumber").text(newval);
      });
    });
    

    http://jsfiddle.net/MahshidZeinaly/CgQ5c/

    Now lets assume that you have a few sliders, but you want to see a text change if a particular one of them were moved. (I assume it because the range input is inside li tag, and you gave it a name):

    <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>
    

    Try this:

    $(document).ready(function(){
      $("[type=range]").change(function(){
        var newv=$(this).val();
        $(this).next().text(newv);
      });
    });
    

    http://jsfiddle.net/MahshidZeinaly/2pe7P/1/

    0 讨论(0)
  • 2021-02-05 04:25

    Does not seem to have any problem on HTML5 <input type="range"> using change.

    See: http://jsfiddle.net/DerekL/BaEar/33/

    0 讨论(0)
  • 2021-02-05 04:32
    $('input[type=range]').on('input', function () {
        $(this).trigger('change');
    });
    

    This fires the change event on every input event.

    0 讨论(0)
提交回复
热议问题