使用复选框检查重新加载/刷新jquery ui滑块

时间:2014-06-03 18:10:46

标签: jquery user-interface checkbox slider

我对jquery ui滑块和复选框有一点问题。

完整代码是这样的:

$(function() {
var slider = function(event,ui){
    var currentvalue = ui.value || $( this ).slider( "option", "value" );

    if ( $('#netocheck').prop("checked") ){

        var tooltip = $(".tooltip").html(currentvalue + "€");
        var neto = $( ".neto" ).html(currentvalue);
        var fond = $( ".fond" ).html(currentvalue + 1000);
        var sotsiaalmaks = $( ".sm" ).html((currentvalue * 33) / 100);
        var tulumaks = $( ".tm" ).html((currentvalue * 21) / 100);
        var kl = $( ".kl" ).html((currentvalue * 2) / 100);
        var bruto = $( ".bruto" ).html(currentvalue);
    }
    else ( $('#brutocheck').prop("checked") ) {

        var tooltip = $(".tooltip").html(currentvalue + "€");
        var bruto = $( ".bruto" ).html(currentvalue + "€");
        var neto = $( ".neto" ).html("neto");
    }

};

$('input.check').on("change", function() {
    $("input.check").not(this).prop("checked", false);
});

$("#slider-range").slider({
  value: 1000,
  min: 100,
  max: 2000,
  step: 100,
  slide: slider,
  create: slider    
});

});

我希望每次检查两个复选框中的一个时,这个IF部分(可能还有整个滑块)都能正常工作。因此,选中一个复选框可向变量添加一些值,并检查另一个值,以便为相同的变量添加不同的值。

我的补充部分:

if ( $('#netocheck').prop("checked") ){

        var tooltip = $(".tooltip").html(currentvalue + "€");
        var neto = $( ".neto" ).html(currentvalue);
        var fond = $( ".fond" ).html(currentvalue + 1000);
        var sotsiaalmaks = $( ".sm" ).html((currentvalue * 33) / 100);
        var tulumaks = $( ".tm" ).html((currentvalue * 21) / 100);
        var kl = $( ".kl" ).html((currentvalue * 2) / 100);
        var bruto = $( ".bruto" ).html(currentvalue);
    }
    else ( $('#brutocheck').prop("checked") ) {

        var tooltip = $(".tooltip").html(currentvalue + "€");
        var bruto = $( ".bruto" ).html(currentvalue + "€");
        var neto = $( ".neto" ).html("neto");
    }

和复选框:

<span class="check1"><input id="netocheck" class="check" type="checkbox" checked>1</span>
<span class="check2"><input id="brutocheck" class="check" type="checkbox">2</span>

2 个答案:

答案 0 :(得分:0)

在IF部分中缺少 if

if ( $('#netocheck').prop("checked") ){

    var tooltip = $(".tooltip").html(currentvalue + "€");
    var neto = $( ".neto" ).html(currentvalue);
    var fond = $( ".fond" ).html(currentvalue + 1000);
    var sotsiaalmaks = $( ".sm" ).html((currentvalue * 33) / 100);
    var tulumaks = $( ".tm" ).html((currentvalue * 21) / 100);
    var kl = $( ".kl" ).html((currentvalue * 2) / 100);
    var bruto = $( ".bruto" ).html(currentvalue);
}
else if( $('#brutocheck').prop("checked") ) {

    var tooltip = $(".tooltip").html(currentvalue + "€");
    var bruto = $( ".bruto" ).html(currentvalue + "€");
    var neto = $( ".neto" ).html("neto");
}

答案 1 :(得分:0)

这很难看,但很有效。

var slider = function(event,ui){    
var currentvalue = ui.value || $( this ).slider(  "value" );
 slideChange(currentvalue);
};
function slideChange(currentvalue){

  if ( $('#netocheck').prop("checked") ){

        var tooltip = $(".tooltip").html(currentvalue + "€");
        var neto = $( ".neto" ).html(currentvalue);
        var fond = $( ".fond" ).html(currentvalue + 1000);
        var sotsiaalmaks = $( ".sm" ).html((currentvalue * 33) / 100);
        var tulumaks = $( ".tm" ).html((currentvalue * 21) / 100);
        var kl = $( ".kl" ).html((currentvalue * 2) / 100);
        var bruto = $( ".bruto" ).html(currentvalue);
    }
    else if( $('#brutocheck').prop("checked") ) {

        var tooltip = $(".tooltip").html(currentvalue + "€");
        var bruto = $( ".bruto" ).html(currentvalue + "€");
        var neto = $( ".neto" ).html("neto");
    }
}

var options = {  
  value: 1000,
  min: 100,
  max: 2000,
  step: 100,
  slide: slider,
  create: slider,
   change:slider    
};

$('input.check').on("change", function() {  
     $("input.check").not(this).prop("checked", false);
     slideChange($("#slider-range").slider('value'));
});

$("#slider-range").slider(options);

例如:JSFIDDLE