【问题标题】:Submit form with dynamically changing action attribute提交具有动态更改操作属性的表单
【发布时间】:2014-08-01 11:15:59
【问题描述】:

我正在尝试发送带有动态更改操作 url 的表单,但是在更改属性后表单没有提交。

这是一个简单的例子: http://jsfiddle.net/THZHL/1/

<div ng-app="app">
    <form name="b" action="{{url}}" methood="post" ng-controller="formCtrl">
        <button type="button" ng-click="set()">1. set url</button>
        <button type="submit">2. Send</button>
        {{url}}
    </form>
</div>
<script>
    app = angular.module("app", []);

    app.controller("formCtrl", function($scope){
        $scope.set = function(){
            $scope.url = "/abc";
        }
    });
</script>

我不明白为什么会这样。

【问题讨论】:

  • 即使我不知道为什么会发生这种情况,但你为什么不这样做:在表单中添加一个onsubmit="some_function()",然后你可以将它发送到任何你想要的地方函数并在最后添加return false;到这个函数。
  • 您不会真正“提交”带有角度的表单。这不是一个好的模式,因为它意味着一个新的页面刷新,因此您的应用程序每次都需要完全重建。 Angular 更适用于单页应用程序,您可以在其中使用 AJAX 请求(或 websockets)动态获取数据并使用它来更改您的模型(然后再次更改您的视图)

标签: javascript forms angularjs


【解决方案1】:

我找到了解决方案! $scope.url 应设置为任何非空值。喜欢那里:

http://jsfiddle.net/THZHL/2/

app.controller("formCtrl", function($scope){
    $scope.url = "/def";

    $scope.set = function(){
        $scope.url = "/abc";

    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    • 2013-10-08
    • 2016-11-15
    • 2021-11-16
    • 2017-05-23
    • 1970-01-01
    相关资源
    最近更新 更多