我正在尝试在角度应用中提交标准表单。 在我尝试将ng-click添加到表单的提交按钮之前,一切正常 点击上的操作只是为了给用户提供一些反馈。
我的行为有点奇怪。完成提交并调用对点击行为的调用,但是,表单中没有提交参数。
我一直在谷歌搜索,人们似乎说,使用ng-click表单禁用提交,但它没有,每个工作正常,除了不发送的表单参数。
我知道我可以重新定义我自己的提交功能,使用ng-submit拦截帖子并自己发帖,这看起来有点矫枉过正,因为我想做的几乎是有效的。 (在这种情况下,我如何从角度回调中获取表单参数?)
以下是一个实例:http://jsfiddle.net/hHapg/5/.If您选中一个框并提交,网址上没有参数。 如果你编辑文件并删除了提交按钮上的ng-click,它就会起作用。
<form ng-app="test" action="/echo/jsonp" name="orders" target="_blank" ng-controller="test">
<table>
<tr ng-repeat="order in [{orderId:1}, {orderId:4}]" >
<td>
<input type="checkbox" name="order_ids{{i}}" value="{{order.orderId}}"></input>
</td>
<td>
{{order.orderId}} : {{ order.checked}}
</td>
</tr>
</table>
<input type="submit" name="action" value="Picking List" class="btn btn-primary picked" ng-clik="submit(true)">
</form>
发现问题。尽管真正的代码并不完全是我发表的代码。在兰登的帮助下,我设法解决它。问题是我在表单声明中有一个硬编码数组(不在我的例子中的ng-repeat中)。 (它从角度来看是硬编码的,但实际上是在运行时生成的)。将此数组移到顶部(与ng-ap相同),解决了这个问题。
答案 0 :(得分:2)
您是否在所有name
和input
代码上设置了select
属性?我想大多数Angular示例都不包含name
属性,因为提交表单似乎已成为过去。
以下简化示例运行正常。我需要查看您的特定代码,以帮助您解决问题所在的其他问题。
<强> http://jsfiddle.net/langdonx/DUV9q/ 强>
HTML:
<form ng-app="test" ng-controller="test" action="/echo/jsonp/" method="get">
<input type="text" name="value1" ng-model="value1"/>
<input type="text" name="value2" ng-model="value2"/>
<input type="submit" ng-click="submit()">
</div>
JavaScript的:
var app = angular.module('test', []);
app.controller('test', function ($scope, $http) {
$scope.value1 = "val 1 here";
$scope.value2 = "and val 2 here";
$scope.submit = function () {
alert('it should submit now, if it worked, you\'ll see some json');
}
});