簡體   English   中英

AngularJS塊以symfony2形式提交按鈕

[英]AngularJS blocks submit button in symfony2 form

我在symfony2中創建了表單,該表單最后顯示了提交表單的按鈕。 當我添加ng-app="myApp"一切正常,但是我無法提交此頁面上的表單。 為什么會這樣以及如何取消阻止呢?

形成:

->add('company','choice',array(
                'mapped' => false,
                'attr'=>array('ui-select2'=>'myArray', 'ng-model'=>'form.company','ng-options'=>'option.value as entity.name_company for entity in entities','ng-change' => 'changeItem()')
            ))

            ->add('project',null,array(
                'attr'=>array('ui-select2'=>'myArray2', 'ng-model'=>'form.task','ng-options'=>'option.value as entity.description_task for entity in tasks')
            ))

視圖:

<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);
    });
});

好的文檔說:

因此,除非元素指定了action屬性,否則Angular會阻止默認操作(將表單提交到服務器)

因此您可以將動作屬性添加到表單中。 在我的示例中,我正在使用grenerateUrl函數,但是您應該生成當前路徑的網址(生成表單的控制器的路徑)

$data = array();
            $form = $this->createFormBuilder($data,
                array("action" => $this->generateUrl("route_to_curent_path"))))
                ->add('field', 'text')
                ->add('submitButton', 'submit')
                ->getForm();

編輯:剛剛發現這是一個重復的問題, 這里這里這里這里 (此鏈接是最受好評的答案)

我們需要更多信息,您是否讓瀏覽器驗證表單? 去除 :

{{ form(form, { 
    'attr': {
        novalidate,
    },
    }) 
}}

可能隱藏了錯誤彈出窗口(出現了各種復雜表單字段)

當您說“我無法提交”時,“提交”按鈕是否無法啟動? 提拔后會發生錯誤?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM