Это мой первый пост здесь, и я все еще учусь кодировать. В настоящее время я работаю над проектом для работы и пытаюсь обновить несколько полей при загрузке страницы. Эта указанная c веб-страница использует angular в форме as pnet, и я попытался изменить поля двумя способами:
- При нажатии кнопки поля будут обновляться каждый раз, но это проблематично c, так как я пытаюсь автоматизировать, и поэтому было бы здорово, если бы я мог автоматически обновлять поля, сохранять и переходить к следующей странице
- При загрузке страницы это выглядит как работать иногда, а иногда это не будет работать вообще. Я проверил, что загрузка работает, потому что я использовал оповещение, но поля просто не меняются
Форма была прикреплена как снимок экрана, и пример поля, которое я хочу отредактировать, также прикреплен как скриншот.
Спасибо!
Форма 1
Поле в форме 2
$('#MainContent > div.container_24.clearfix > div > h1').append("<button class='float_right'
id='ProjectHelp' type=button>Project</button>");
window.onload = function() {myFunction()};
function myFunction() {
alert('hi');
var input = $('#dollarsPerPoint');
input.val('4');
$('#autoExpireAfterMonths').val('1');
input.trigger('input'); // Use for Chrome/Firefox/Edge
input.trigger('change'); // Use for Chrome/Firefox/Edge + IE11
input.change();
var changeEvent = document.createEvent ("HTMLEvents");
changeEvent.initEvent ("change", true, true);
var element1 = angular.element('a[ng-click="vm.saveChanges()"]');
element1.trigger('click');
element1.click();
var element2 = $('a[ng-click="vm.saveChanges()"]')
element2.trigger('click');
element2.click();
}
(function($, ng) {
'use strict';
var $val = $.fn.val; // save original jQuery function
// override jQuery function
$.fn.val = function (value) {
// if getter, just return original
if (!arguments.length) {
return $val.call(this);
}
// get result of original function
var result = $val.call(this, value);
// trigger angular input (this[0] is the DOM object)
ng.element(this[0]).triggerHandler('input');
// return the original result
return result;
}
})(window.jQuery, window.angular);