簡體   English   中英

ng-submit不會觸發任何形式的內容

[英]ng-submit doesn't fire anything in form

我有一個基本問題,我不明白為什么它不起作用

<div class="footer">
    <div class="row writing">
        <p>{{slogan}}</p>
    </div>
    {{send()}} //check if the function is there
    <div class="container">
        <form name="userForm" ng-submit="send()" novalidate>
            <div class="form-group col-md-6">
                <ng-form name="userMail">
                    <input name="mail" type="email" ng-model="varmail" class="form-control" placeholder="Your mail" required>
                    <!--<p class="help-block" ng-show="userMail.mail.$invalid">Valid Email Required</p>-->
                </ng-form>
            </div>
            <div class="form-group col-md-6">
                <ng-form name="userMarket">
                    <input type="text" ng-model="varmarket" class="form-control" placeholder="huhu"
                        required>
                </ng-form>
            </div>
            <div class="form-group">
                <button type="submit" class="btn btn-primary flat-butt">{{butLabel}}</button>
            </div>
        </form>
    </div>
</div>

因此,我可以看到該函數存在,但是ng-submit不會觸發任何操作。 請注意,這是隔離的作用域,並且函數已成功傳遞。

謝謝。

更新:我在這里創建了一個Plunk,它也不起作用http://plnkr.co/edit/CULSC4ajGfid25sEaT34?p=preview

您發布的代碼(功能上)沒有任何問題。

  1. 通過檢查控制台是否有任何錯誤消息來開始調試。
  2. 看一下您傳遞給ngForm指令的send函數,它在范圍內。
  3. 檢查該文件的HTML標記。 也許您有結尾的<form>標簽,這些標簽使您使用“提交”按鈕定位的表單變得模糊。

如果您使用的是嵌套控制器,請嘗試使用“ controller as”語法,以便避免從由每個控制器創建的$ scope中訪問函數和變量。

另外,我看不到為什么表單中的輸入周圍會有多余的ngForm指令。 從您發布的內容來看,它似乎沒有必要。

這是您的代碼正常工作:

 // app.js (function() { 'use strict'; angular.module('app', []); })(); // main.controller.js (function() { 'use strict'; angular.module('app').controller('MainController', MainController); MainController.$inject = ['$scope']; function MainController($scope) { $scope.butLabel = "Submit"; $scope.send = send; function send() { alert("Triggered!"); } } })(); 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div class="footer" ng-app="app" ng-controller="MainController as MainCtrl"> <div class="row writing"> <p>{{slogan}}</p> </div> <div class="container"> <form name="userForm" ng-submit="send()" novalidate> <div class="form-group col-md-6"> <ng-form name="userMail"> <input name="mail" type="email" ng-model="varmail" class="form-control" placeholder="Your mail" required> <!--<p class="help-block" ng-show="userMail.mail.$invalid">Valid Email Required</p>--> </ng-form> </div> <div class="form-group col-md-6"> <ng-form name="userMarket"> <input type="text" ng-model="varmarket" class="form-control" placeholder="Your favorite super-market (Franprix, Carrefour,...)" required> </ng-form> </div> <div class="form-group"> <button type="submit" class="btn btn-primary flat-butt">{{butLabel}}</button> </div> </form> </div> </div> 

所以我找到了,當我傳入函數時,我應該使用“ sendInfo()”,而不是“ sendInfo”。

謝謝大家 !

暫無
暫無

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

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