使用select onchange事件刷新jquery滑块

时间:2014-08-28 23:22:30

标签: javascript jquery

我有一个包含多个字段的表单,包括一个jquery滑块和一个选择下拉框。目前,当我更改下拉列表的选择时,我通过以下javascript清除其他几个字段的值:

function clearVolumes() {
  document.getElementById('size').value = "";
  document.getElementById('amount').value = "";
  document.getElementById('hardwood_testet').value = "";
}

我用onchange调用它:

<select id="catbiomass" name="categories[]" onchange="clearVolumes()" />

这对我很有用。但是,表单中有一个jquery滑块(我通过SO找到),我也试图通过这个onchange刷新回零,但没有运气。滑块的jquery是:

$( "#hardwoodslider" ).slider({
  range: "min",
  min: 0,
  max: 100,
  step: 5,
  value: 0.00,
  slide: function( event, ui ) {
  $( "#hardwood_testet" ).val( ui.value );
  $(ui.value).val($('#hardwood_testet').val());
  }
  });
$("#hardwood_testet").keyup(function() {
  $("#hardwoodslider").slider("value" , $(this).val())
});

我尝试的是添加以下jquery:

$("#catbiomass").onchange(function() {
  $("#hardwoodslider").slider("value" , 0)
});

这不起作用,当我更改选择字段时,滑块不会重置为零。我一直在阅读并且这段代码应该可以工作,问题也是如此,因为事实上我在select字段中调用了两个onchange事件,一个是通过javascript而一个是通过jquery?

由于

1 个答案:

答案 0 :(得分:0)

我尝试过两种可能的解决方案,对我来说都很好:

  1. 合并两个onChange函数
    $("#catbiomass").onchange(function() {
        document.getElementById('size').value = "";
        document.getElementById('amount').value = "";
        document.getElementById('hardwood_testet').value = "";
        $("#hardwoodslider").slider("value" , 0)
    });
    要么
    function clearVolumes() {
        document.getElementById('size').value = "";
        document.getElementById('amount').value = "";
        document.getElementById('hardwood_testet').value = "";
        $("#hardwoodslider").slider("value" , 0);
    }
  2. 使用“.bind”而不是“.onchange”:
    $("#catbiomass").bind('change', function() {
        $("#hardwoodslider").slider("value" , 0);
    });
  3. 您可以查看我的演示here