首页 > 解决方案 > 使用javascript填充角度输入

问题描述

设置元素value不起作用。它不像用户打字。当我提交这个输入时,弹出窗口告诉我我根本没有填写输入。我怎样才能像用户一样填充这个输入元素?

<div class="login-input input-group" data-ng-class="{'invalid' : !valid}">
<input id="alias-input" type="text" class="form-control ng-pristine ng-valid ng-empty ng-valid-maxlength ng-touched" tabindex="1" data-ng-model="formData.alias" data-ng-keydown="sendAlias($event)" maxlength="10" data-gemius-event="click" data-gemius-parameters="['place=login','inputbox=login','met=onclick']"
    spellcheck="false">
</div>

我试过了:

angular.element(document.querySelector("#alias-input")).val("foo");

document.getElementById('alias-input').value = 'foo';

标签: javascriptangularjs

解决方案


这对我有用:

const event = new Event('input', { bubbles: true }); 
document.querySelectorAll('[formcontrolname = "idNumber"]')[0].value = '123456789';
document.querySelectorAll('[formcontrolname = "idNumber"]')[0].dispatchEvent(event);

这是在 Ionic 3.9.2 和 Angular 5.0.3 的页面上测试的


推荐阅读