首页 > 解决方案 > .trigger('change') 有时在更改选择值中不起作用

问题描述

我有一些相互依赖的选择输入。我想分别使用用户身份验证的会话数据来选择它们。没关系,工作正常。但有时触发器不起作用,不要选择任何选项。在控制台中,所有选择值都是正确的并显示它们,但不要在输入中选择它们。有人知道原因吗?

    var req = new RequestManager({
        route: '/organization/session/',
        type: 'GET',
        onSuccess: function (result) {
            console.log(result.is_school,'select school',result);
            if( result.is_school === true) {
                $('#organization').val(result.id);
                $('#organization').trigger('change');

                 $('#educational_branch_id').val(result.id);
                 $('#educational_branch_id').trigger('change');

                 if(result.elementary === true) {
                    $('#educational_section_id').val(result.section_id);
                    $('#educational_section_id').trigger('change');
                 }
            }
        }
    });
    req.send();

标签: javascriptjqueryselecttriggers

解决方案


添加后可以使用以下方法进行trigger更改val()

var req = new RequestManager({
        route: '/organization/session/',
        type: 'GET',
        onSuccess: function (result) {
            console.log(result.is_school,'select school',result);
            if( result.is_school === true) {
                $('#organization').val(result.id).trigger('change');


                 $('#educational_branch_id').val(result.id).trigger('change');


                 if(result.elementary === true) {
                    $('#educational_section_id').val(result.section_id).trigger('change');

                 }
            }
        }
    });
    req.send();

您可以使用两种方式在添加值后触发更改

1) $('#educational_section_id').val(result.section_id).trigger('change');

或者

2) $('#educational_section_id').val(result.section_id).change();

推荐阅读