您好我目前在Chrome开发工具中有一个包含以下部分的网站
<div class="itemEditorField-inputsRelation">
<input class="details-relativeInput-ageOnset js-relativeInput-ageOnset" type="number" data-bind="numeric: ageOnset, attr: { min: 0, max: 999, placeholder: 'Age' }" min="0" max="999" placeholder="Age"></input>
</div>
如何模拟在knockoutJS输入字段中输入文字?我试过......
e = $.Event('keydown');e.keyCode=50;$('input.details-relativeInput-ageOnset.js-relativeInput-ageOnset').trigger(e);
但它返回的只是对象本身。我没有代码本身插入任何东西。我只使用Chrome和JQuery。任何帮助将不胜感激。感谢。
答案 0 :(得分:0)
如果你有一个正常的value
绑定,那么技巧就是触发输入字段的change
触发器。这可能适合您,但很难说,因为您有numeric
绑定,它不是标准的绑定处理程序,而是自定义绑定处理程序。无论什么事件导致更新绑定变量都是您想要触发的。
下面是value
绑定的演示。
var vm = {
ageOnset: ko.observable('')
};
vm.ageOnset.subscribe(function(newValue) {
alert("New value:" + newValue);
});
ko.applyBindings(vm);
setTimeout(function () {
$('input').val('12').change();
}, 500);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<div class="itemEditorField-inputsRelation">
<input class="details-relativeInput-ageOnset js-relativeInput-ageOnset" type="number" data-bind="value: ageOnset, attr: { min: 0, max: 999, placeholder: 'Age' }" min="0" max="999" placeholder="Age" />
</div>