当我从select中使用jQuery选择选项时,如何在输入上触发change事件?

时间:2018-05-08 09:58:37

标签: javascript jquery html events

我使用jQuery触发项目中的事件。我想从select中选择一个选项时触发输入事件更改,当我选择一个选项时,输入值将使用选项值更改并显示新值的长度。

另外,我想在输入中触发事件更改,但它对我不起作用,我尝试多次但不起作用:

$(document).ready(function() {
  var oldVal;
  var checkLength = function(val) {
    $('label').html(val.length);
  }

  $('input').bind('change textInput input', function() {
    var val = this.value;
    if (val !== oldVal) {
      oldVal = val;
      checkLength(val);
    }
  });

  $("select").change(function() {
    var str = "";
    $("select option:selected").each(function() {
      str += $(this).text() + " ";
    });
    $("input").val(str);
  })
}); 

2 个答案:

答案 0 :(得分:1)

我就是这样做的。

  1. 在两者上添加change个事件侦听器。
  2. 使用选择标记
  3. 中选择的值更新输入
  4. 从那里触发change事件
  5. 
    
    $("#s").change(function(){
       console.log("Option selected");
       $("#d").val($(this).val());
       $("#d").trigger("change");
    });
    
    $("#d").change(function(){
      console.log("input modified")
    })
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <input type="text" id="d" />
    
    <select id="s">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
    </select>
    &#13;
    &#13;
    &#13;

答案 1 :(得分:0)

尝试手动触发输入的更改事件,如此

*$( "input" ).trigger("change");*