更改输入的值并提交 AngularJS



>我需要在页面中创建机器人来完成一些工作,我需要更改年份和月份的值,并在手动放置值时提交一切正常,但是当我像这样使用javascript时:

document.getElementsByName('dateeffet-annee')[0].value='2017';
document.getElementsByName('dateeffet-annee')[0].focus();
document.getElementsByName('dateeffet-mois')[0].value='12';
document.getElementsByName('dateeffet-mois')[0].focus();

这是我的页面代码:

<div class="col-xs-12 ap-show" id="tarifs" ng-click="showPanier = false" ng-show="!isLoading" ng-class="{'ap-show':!isLoading}" style="">
    <div class="row">
        <div>
            <!-- ngIf: getNbProposition() == 0 -->
            <div ng-if="getNbProposition() == 0" class="ng-scope">
                <p>Les propositions ne pourront être tarifiées qu'après modification de la date d'effet.</p>
                <div class="col-xs-4 col-xs-offset-4">
                    <div class="input-group ng-valid ng-valid-required ap-invalid ng-dirty" invalid="hasNotify(vm, 'dateeffet')" ng-form="" name="effetFormBis">
                        <div class="input-group date-group ng-isolate-scope ng-valid-date ng-valid-max-date ng-valid-min-date ng-valid ng-valid-required ng-dirty" ng-form="dateeffet" ap-date-containers="" ng-model="vm.dateeffet" ng-change="saveDateEffet()" min-date="" max-date="" ng-required="behaviours['dateeffet-required']" name="dateeffet">
                            <input maxlength="2" name="dateeffet-jour" placeholder="jj" mask="99" class="form-control left ng-pristine ng-valid" ng-model="dateVal.PartJour" ng-focus="focus.jour = true" ng-blur="focus.jour = false" type="tel">
                            <input maxlength="2" name="dateeffet-mois" placeholder="mm" mask="99" class="form-control left ng-pristine ng-valid" ng-model="dateVal.PartMois" ng-focus="focus.mois = true" ng-blur="focus.mois = false" type="tel">
                            <input maxlength="4" name="dateeffet-annee" placeholder="aaaa" mask="9999" class="form-control last ng-pristine ng-valid" ng-model="dateVal.PartAnnee" ng-focus="focus.annee = true" ng-blur="focus.annee = false" type="tel">
                            <input name="compoVal" ng-model="dateVal.PartAnnee" class="ng-pristine ng-valid" type="hidden">
                        </div>
                    </div>
                </div>
            </div>
            <!-- end ngIf: getNbProposition() == 0 -->
            <!-- ngIf: getNbProposition() > 0 -->
        </div>
    </div>
</div>

你能帮忙从控制台更改值并使用javascript提交更改吗,因为这不是我的网站

如果你以这种方式更新值,而不是"角度方式"(在控制器内部,使用角度jqlite(,你应该在$scope.$apply函数中执行代码,以强制角度更新值。像这样的东西应该在角度控制器之外工作:

$scope.$apply(function () {
    document.getElementsByName('dateeffet-annee')[0].value='2017';
    document.getElementsByName('dateeffet-mois')[0].value='12';
});

我通过这段代码解决了这个问题

document.getElementsByName('dateeffet-annee')[0].value='2017';
    document.getElementsByName('dateeffet-mois')[0].value='12';
    var $parent = $("[name='dateeffet']");
    $parent.find("input").each(function(){
        var $this = $(this);
        angular.element($this.get(0)).triggerHandler("blur");
    });
    angular.element($parent.get(0)).scope().saveDateEffet();

最新更新