我正在尝试使用javascript登录到网页,但是,即使输入的文字清楚,页面也会显示错误消息“用户名/密码字段为空”。这是我使用javascript输入用户名/密码的方法。
document.getElementById('username').value='TestUsername';
document.getElementById('password').value='TestPassword';
我认为该页面正在使用angularJS阻止javascript输入被识别。如果我在浏览器退格中手动输入一个字符,则会识别该文本。 Chrome / Safari / Opera自动填充功能可以解决此问题,但是移动Safari偶尔会出现问题。
我该如何使用javascript来使输入的文本被网页识别?
另一个说明,元素的HTML类,例如用户名,密码, 表单,然后提交按钮,所有的类都会在识别文本时从“ ng-touched ng-dirty ng-valid”变为“ ng-touched ng-dirty ng-valid”。我尝试使用javascript更改className,但是仍然无法识别文本。
答案 0 :(得分:1)
设置输入值后,尝试fire the "input" event,如下所示:
var element = document.getElementById('username');
element.value='TestUsername';
var event = new Event('input', {
'bubbles': true,
'cancelable': true
});
element.dispatchEvent(event);
Event input is the way from where Angular knows that some changes occurs and it must run digest loop