【问题标题】:trigger('change') is not working on Select触发器(“更改”)不适用于 Select
【发布时间】:2020-04-24 12:42:25
【问题描述】:

我用

创建了一个 select2 下拉菜单
    <select class="form-control select2"  id="country">
<option value="1">India</option>
<option value="2">Aus</option>
<option value="3">usa</option>
    </select>

现在我正在通过 jquery 触发事件选择选定的值

$('#country').val('1').trigger('change'); 

在这里,通过传递的值选择国家,但在此事件中,我还想触发未触发的更改事件。

$("#country").change(function() {
alert('on country change');
});

如果我从 select2 手动更改,则更改事件会触发并显示警报,但我想在国家/地区值从 jquery 更改时自动触发更改事件。有什么线索吗?

提前致谢。

【问题讨论】:

    标签: javascript jquery jquery-select2


    【解决方案1】:

    你应该在change函数之后trigger,像这样

    $("#country").change(function() {
      alert('on country change');
    });
    
    $('#country').val('1').trigger('change');
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.10/js/select2.min.js"></script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.10/css/select2.min.css" rel="stylesheet"/>
    
    
    
    <select class="form-control select2"  id="country" style="width: 100px;">
        <option value="1">India</option>
        <option value="2">Aus</option>
        <option value="3">usa</option>
      </select>

    【讨论】:

    • 这很愚蠢。我在想它不会像我在 document.ready 函数中实现的那样影响太大。
    • 因此,这对我的第一个国家/地区下拉菜单有用,但是当我将其应用于州时,它不记得下拉选项,我正在使用基于国家/地区 ID 的 ajax 加载州,现在即使在页面重新加载但不记住状态后也能正确触发,知道吗?
    猜你喜欢
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 2016-01-17
    • 2021-12-06
    • 2014-05-14
    • 2023-03-22
    • 1970-01-01
    • 2012-05-19
    相关资源
    最近更新 更多