【问题标题】:preventDefault() not working on production environmentpreventDefault() 不适用于生产环境
【发布时间】:2013-10-02 00:03:04
【问题描述】:

我想阻止提交按钮上的默认点击操作:

我有一个带有这个按钮的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" 与验证无关。

问题:

我在生产环境中可能做错了什么?

或者解决这个问题的正确途径是什么?(我是 Angular 新手)

我正在使用 AngularJS v1.2.0rc1(开发和生产)

【问题讨论】:

  • 如果你使用 console.log(event) 会得到什么?
  • jQuery.Event {type: "click", timeStamp: 1380672950849, jQuery11000606855190359056: true, isTrigger: 3, namespace: ""…}
  • 您的生产环境是否也有 jQuery 的工作副本? iirc event.preventDefault() 是一个 jQuery 方法。
  • v2.0.3(开发和生产)

标签: angularjs preventdefault


【解决方案1】:

考虑在表单上使用ng-submit,而不是在提交按钮上使用ng-click。正如文档所述:“启用将角度表达式绑定到 onsubmit 事件。此外,它会阻止默认操作(对于表单,这意味着将请求发送到服务器并重新加载当前页面),但前提是表单不包含操作属性。”

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

【讨论】:

  • 很高兴知道为什么 ng-click 中的 preventDefault() 对他们不起作用。
猜你喜欢
  • 2013-11-13
  • 2018-12-15
  • 1970-01-01
  • 2021-03-10
  • 1970-01-01
  • 2021-02-08
  • 2014-06-15
  • 2012-06-05
  • 1970-01-01
相关资源
最近更新 更多