Jquery 从外部触发击倒事件

Jquery 从外部触发击倒事件,jquery,knockout.js,Jquery,Knockout.js,我在html表单中有以下Select元素: <select multiple="multiple" data-bind="options: candidateList, optionsValue: 'id', optionsText: 'title', optionsAfterRender: setOptionTitle, selectedOptions: selectedCandidates, optionsAfterRender: setOptionTitle, event: { db

我在html表单中有以下Select元素:

<select multiple="multiple" data-bind="options: candidateList, optionsValue: 'id', optionsText: 'title', optionsAfterRender: setOptionTitle, selectedOptions: selectedCandidates, optionsAfterRender: setOptionTitle, event: { dblclick: addSelectedCandidate, change: candidateChanged }, enable: enabled()">
<option title="first" value="1">first</option>
<option title="second" value="2">second</option>
<option title="third" value="3">third</option>
</select>

第一
第二
第三
现在,我使用jQuery方法设置“optionselected”-值来选择该select的多个元素

如您所见,select上有一个数据绑定,它来自knockout。该淘汰代码位于其他人提供的另一个JavaScript文件中。我们无法真正改变那里的内容。我们的代码不是敲除,而是简单的jQuery代码

现在我的问题是,在这个选择上有验证。当我手动单击某个元素时,这将启用另一个按钮等

但当我试图通过代码来实现这一点时,什么都没有发生。我尝试插入“已选择的”、
$(选项)。触发器('click')
$(选项)。单击()
$(选项)。触发器('change')
$(选项)。change()


有没有办法强制敲除以编程方式“识别”我们更改的内容?

使用
val
,然后使用
trigger('change')
,它就会工作。下面是一个演示:

ko.applyBindings({
候选人名单:[{id:1,标题:“第一”},{id:2,标题:“第二”},{id:3,标题:“第三”},
setOptionTitle:function(){},
所选候选对象:ko.observearray(),
addSelectedCandidate:function(){},
candidateChanged:function(){},
已启用:可观察(真)
});
函数getRandomVal(){return(Math.floor(Math.random()*(3-1))+1.toString();}
setInterval(函数(){
var VAL=[];
如果(Math.random()>0.75){vals.push(getRandomVal());}
如果(Math.random()>0.75){vals.push(getRandomVal());}
如果(Math.random()>0.75){vals.push(getRandomVal());}
$(“选择”).val(val).trigger(“更改”);
}, 1000);

第一
第二
第三


所选候选项:
谢谢。这是多选,如何设置值?就像数组val([“1”、“2”、“3”])?