Javascript AngularJS以symfony2形式阻止提交按钮
我已经在symfony2中创建了表单,它在最后呈现了提交表单的按钮。当我添加Javascript AngularJS以symfony2形式阻止提交按钮,javascript,php,angularjs,symfony,Javascript,Php,Angularjs,Symfony,我已经在symfony2中创建了表单,它在最后呈现了提交表单的按钮。当我添加ng app=“myApp”时,一切正常,但我无法提交此页面上的表单。为什么会这样?如何解除阻止 表格: 视图: 我们需要更多信息,您是否允许浏览器验证表单?删除: {{ form(form, { 'attr': { novalidate, }, }) }} 可能隐藏了弹出错误(与各种复杂表单字段一起发生) 当你说“我不能提交”时,提交按钮是否不能?错误发生在消费之后?好的说
ng app=“myApp”
时,一切正常,但我无法提交此页面上的表单。为什么会这样?如何解除阻止
表格:
视图:
我们需要更多信息,您是否允许浏览器验证表单?删除:
{{ form(form, {
'attr': {
novalidate,
},
})
}}
可能隐藏了弹出错误(与各种复杂表单字段一起发生)
当你说“我不能提交”时,提交按钮是否不能?错误发生在消费之后?好的说法是:
因此,Angular会阻止默认操作(表单提交)
除非元素具有action属性,否则
指定的
因此,您可以将动作属性添加到表单中。在我的示例中,我使用的是grenerateUrl函数,但您应该生成当前路由的url(生成表单的控制器的路由)
编辑:
刚才发现这是一个重复的问题
(这个链接是最上等的答案)你能添加一些代码吗?你在这里用angular吗?是的,我用select2脚本填充select2。我添加了代码。好的。首先$scope.forms是一个变量,您将其作为函数调用(为什么要执行
{{form(form)}}
?)。否则,您会看到GET请求的网络流量吗?{form(form)}是用于呈现表单的symfony函数。……不是吗{[{form(form)}]}
?不,代码和您看到的一样简单。当我删除“ng应用程序”时,一切正常。“提交”按钮已启用,只是不提交表单。是否尝试删除自动验证?这是大多数最新浏览器的默认行为。
<html ng-app="flowApp">
<head>
<link rel="stylesheet" href="{{ asset('external-libs/select2/select2.css')}}">
<script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
<script src="{{ asset('external-libs/select2/select2.js')}}"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.5/angular.min.js"></script>
<script src="{{ asset('external-libs/select2.js')}}"></script>
<script src="{{ asset('external-libs/app.js') }}"></script>
<style>
.select2-choice { width: 220px; }
</style>
</head>
<body>
<div class="container" ng-controller="MainCtrl">
{{ form(form) }}
</div>
</body>
</html>
var app = angular.module('flowApp', ['ui.select2']).config(function($interpolateProvider){
$interpolateProvider.startSymbol('{[{').endSymbol('}]}');
}
);
app.controller('MainCtrl', function ($scope, $element,$http) {
$http({method: 'GET', url: 'companies.json'}).
success(function(data, status, headers, config) {
$scope.entities = data.entities;
$scope.form = {company: $scope.entities[0].value };
console.debug(data.entities);
});
});
{{ form(form, {
'attr': {
novalidate,
},
})
}}
$data = array();
$form = $this->createFormBuilder($data,
array("action" => $this->generateUrl("route_to_curent_path"))))
->add('field', 'text')
->add('submitButton', 'submit')
->getForm();