.trigger('change') 有时在 change select value 中不起作用



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

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();

而不是使用

$('#organization').val(result.id); 

$('#organization option[value='+result.id+']').attr('selected', true);

select用于选择值。

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

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();

最新更新