在jquery UI滑块移动时检测文本框更改

时间:2013-09-03 20:55:10

标签: javascript jquery

我有这个小提琴 http://jsfiddle.net/48Hpa/ ,它会在我自己输入关键字时自动计算总和,当我更改滑块时,文本框值会发生变化,但我看不到总和。为什么是这样?我怎样才能做到这一点?非常感谢你。

$(document).ready(function(){

    $(function() {
        $( "#slider1" ).slider({
          range: "min",
          value: 36,
          min: 1,
          max: 36,
          slide: function( event, ui ) {
            $( ".amount1" ).val( ui.value);
          }
        });
        $( ".amount1" ).val($( "#slider1" ).slider( "value" ));
      });

    $(function() {
        $( "#slider2" ).slider({
          range: "min",
          value: 50000,
          min: 1,
          max: 50000,
          slide: function( event, ui ) {
            $( ".amount2" ).val( ui.value );
          }
        });
        $( ".amount2" ).val( $( "#slider2" ).slider( "value" ));
      });


    function writesum() {
      var months = $('.amount1').val();
      var credits = $('.amount2').val();
      var payment = Number(months) + Number(credits);
          $('.amount3').val(payment);
    }

    $(".amount1").on('input',function(){
        jQuery(writesum);
    });

    $(".amount2").on('input',function(){
        jQuery(writesum);
    });

});

2 个答案:

答案 0 :(得分:1)

滑块移动时只需调用writesum()怎么样?

即。 http://jsfiddle.net/48Hpa/1/

答案 1 :(得分:0)

当您使用代码更改其值时,您需要在输入字段上触发更改事件。

另外,我建议使用更改事件。

        $( "#slider1" ).slider({
         ...
          slide: function( event, ui ) {
            $( ".amount1" ).val( ui.value)
                           .trigger('change');
          }
        });

        $( "#slider2" ).slider({
          ...
          slide: function( event, ui ) {
            $( ".amount2" ).val( ui.value )
                           .trigger('change');
          }

    ...

    $(".amount1, .amount2").on('change', function() {
        writesum();
    });