2013-10-02 3 views
0

Я хочу, чтобы предотвратить действие щелчка по умолчанию на кнопку отправки:preventDefault() не работает в производственной среде

У меня есть форма Haml с помощью этой кнопки:

= f.submit 'Publish', "ng-click" => "submit($event)" 

контроллер:

$scope.submit = function(event) { 
    if(some_condition) { 
     event.preventDefault(); //This is working on development. But not working on production environment. 
     //show modal with a message 
    } 
    } 
}; 

Я не хочу спрашивать, не является ли форма неправильной. «some_condition» Это не связано с проверками.

Вопрос:

Что я делаю не так, возможно, о производственном окр?

или что такое правильный путь, чтобы решить эту проблему? (Я новый с угловой)

Я использую AngularJS v1.2.0rc1 (Dev и производства)

+0

Что вы получите, если вы console.log (событие)? –

+0

jQuery.Event {type: "click", timeStamp: 1380672950849, jQuery11000606855190359056: true, isTrigger: 3, namespace: "" ...} – Leantraxxx

+1

Имеется ли в вашей рабочей среде рабочая копия jQuery? iirc event.preventDefault() - это метод jQuery. –

ответ

1

Рассмотрите возможность использования ng-submit на форме вместо ng-click на кнопку отправки. В документации говорится: «Включает привязки угловых выражений к событиям onsubmit. Кроме того, это предотвращает действие по умолчанию (которое для формы означает отправку запроса на сервер и перезагрузку текущей страницы), но только в том случае, если форма не содержит атрибута действия».

http://docs.angularjs.org/api/ng.directive:ngSubmit

+0

Было бы неплохо узнать, почему preventDefault() в ng-click не будет работать для них. –

Смежные вопросы