AngularJS:以正常方式提交表格

hen*_*enk 9 post form-submit angularjs ng-submit

我正在现有的Web应用程序上实现AngularJS,它需要像没有AngularJS那样的常见HTTP POST.

这似乎比我预期的要困难.页面URL是动态生成的,无法使用PHP进行回显.我尝试使用jQuery修改表单操作,但这似乎也不起作用.

以正常方式提交表格真的不可能吗?这就是我的正常形式:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <form method="post">
        <input type="text" name="txt">
        <input type="submit" name="submit">
    </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这与AngularJS的形式相同:

<!DOCTYPE html>
<html ng-app>
<head>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
</head>
<body>
    <form method="post">
        <input type="text" name="txt">
        <input type="submit" name="submit">
    </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

第一个表单执行常规表单发布,第二个表单不执行.根据http://docs.angularjs.org/api/ng.directive:form这是设计的,我可以在表单中提供"action"参数.将它留空是行不通的,并且使用jQuery修改它似乎也不起作用.

Pie*_*ica 13

我遇到了同样的问题.只要AngularJS找到一个空(或缺失)action属性,它就会阻止任何提交按钮/输入实际提交表单.

我设法简单地添加action="#"属性来解决问题.

这只是一种解决方法,#在POST URL的末尾会有丑陋,但是有效.优点是您不需要在HTML代码中对POST URL(可以动态生成)进行硬编码.


小智 -4

你不能只用

<form ng-submit="submit()" ng-controller="Ctrl">
Run Code Online (Sandbox Code Playgroud)

并将POST方法添加到控制器中

  • 我不确定你的意思是什么。使用 AJAX 提交表单不是我想要的,我正在寻找简单、常见的 HTTP POST。 (7认同)