【问题标题】:Angular form auto-resubmit (event triggered to early)Angular 表单自动重新提交(事件提前触发)
【发布时间】:2014-02-26 19:09:30
【问题描述】:

我想制作一个在每次更改时自动提交的表单。我试图制作一个根模型并观察它的变化。问题是我的指令预先填充了链接函数中的模型,并且手表被触发得太早了。

Plunker:http://plnkr.co/edit/oH2Homlr7efu0IctoyQF?p=preview

所以我有两个问题:

  1. 如何知道“真正的”变化何时发生?
  2. 如何提交表格? (只是 $('form').submit() 吗?)

更新

Plunker:http://plnkr.co/edit/7OOSuaf7i3ay70X6WGun?p=preview

我更新了代码以显示查询字符串并注意form.$dirty,但未提交该值。我认为ng-model 不会更新input[value]。关于如何解决这个问题的任何想法?

附言。我不想使用 ajax 请求来提交表单。

【问题讨论】:

    标签: javascript forms angularjs


    【解决方案1】:

    我认为您可以观看 form.dirty 标志而不是 form,这将为您提供正确的触发器。我就是这样用的。

       $scope.$watch('form.$dirty',function(newValue, oldValue){
                 if(newValue){//if isDrty=true
                   console.log('resubmit', newValue);
               }
         },true);  
    

    对于第二个问题,您可以使用$http 服务以表单(json 对象)向服务器发出ajax 请求

    $http.post('/someUrl', $scope.form).success(successCallback);
    

    【讨论】:

    • 我想以经典方式提交表单,而不是使用 Ajax。如果我这样做 $('form').submit() 则不会发送值。
    猜你喜欢
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多