我正在尝试在浏览器扩展中运行javascript,以自动执行在网站上填写表单然后单击按钮的过程--扩展代码可以通过在地址栏中键入javascript:code来模拟。
我遇到问题的网站使用的是angularJS。我有输入字段I的名称,并使用它们来更改输入字段的值。字段已填充,但当我单击按钮时,它显示它们未填充,没有值,并且它们都是错误的。一些验证正在进行,除非我手动输入值,否则无法“看到”我的更改。
有没有一种简单的方法来更改AngularJS输入字段的值,这些字段只使用输入字段的id进行验证。
代码如下:
<input id="shippingAddr-first-name" type="text" class="first-name ng-pristine ng-valid" maxlength="16" data-ng-model="addressTypes[addressType].FirstName" focus-me="commonAddressTypeProps[addressType].focusOnFirstName" client-validation="onExit" data-required-on-exit="">我尝试使用document.getElementById("shippingAddr-first-name").value="Dave";更改字段,但在表单提交期间没有正确注册。但是,如果我手动键入它,它确实可以工作。我还尝试了click()、blur()和focus(),以模拟我可能正在手动执行的一些操作,但这些也不起作用。
发布于 2015-07-19 14:53:19
您应该使用AngularJS的数据绑定,您在输入上放置了一个ng-model,因此您需要更改该值以获取/设置输入值,在您的控制器中,您可以这样做:
JSFiddle
.controller('myCtrl', function ($scope) {
$scope.addressTypes = [];
$scope.addressTypes['onetype'] = { FirstName: 'Dave'};
});https://stackoverflow.com/questions/31498629
复制相似问题