【问题标题】:AngularJS Disabling Forms When Controllers are Created创建控制器时AngularJS禁用表单
【发布时间】:2014-09-13 13:30:24
【问题描述】:

AngularJS 禁用(无法提交)没有特定操作集的表单:

<form action="">

当您创建控制器时。创建指令或工厂时没有这个问题。

你可以在这里看到这个:

http://plnkr.co/edit/gWFRMKGO3FzZtOgs4VmW?p=preview

表格定义为:

<form action="" method="post">

如果您删除第 6 行的开头,您将能够提交表单。

一个简单的解决方案是定义动作,但我不想这样做,因为没有必要。

更新

可以在此处找到有关尝试在 Angular 中进行此更改的一些详细信息:

https://github.com/angular/angular.js/pull/3776

【问题讨论】:

  • 我不明白你的问题,请澄清一下你所说的禁用是什么意思?
  • 已更新,我的意思是您无法提交表单。
  • 我有一个快速的解决方法 :) 随意检查一下! stackoverflow.com/questions/28773057/…

标签: angularjs angularjs-controller


【解决方案1】:

您可以使用ng-submit 来处理。

<form ng-submit="submitForm()" method="post">
  <input name="test" value="11111111" />
  <button type="submit" name="submit" value="1">Send</button>
  <input type="submit" name="submit2" value="Send2" />
</form>

这样表单将正常提交,您必须在 submitForm 函数上实际发送数据(只是一个示例名称)。

这是一个快速的 plnkr:http://plnkr.co/edit/lwWVG0CDHSGMtMU0B8Nj?p=preview

请注意,您可以使用按钮提交,也可以在字段上按 Enter。我希望这就是你一直在要求的。

谢谢

【讨论】:

  • 谢谢你,这行得通,但我很想知道,你怎样才能让 Angular 不干预表单?我没有告诉 Angular 对表单做任何事情,但它已经决定无论如何都会修改它。这似乎并不可取。
  • 如果您不希望您的表单由 Angular 处理,只需将其置于 ng-app 的范围之外。另外,我认为您不能提交没有action 的表单,无论角度如何。
  • 好吧,这不是很angular-ish,我强烈建议您在这种情况下重新考虑您的角度使用。你总是可以分享更多你的意图,我仍然无法 100% 理解它们。
  • 我没有使用 Angular 对表单做任何事情。它是通过 HTTP 发送的标准表单,而不是 AJAX。只是想找一种方法让 Angular 不干扰这个。
  • 您的ng-app 在哪个标签中?最简单的方法是把表格放在外面。
猜你喜欢
  • 2015-11-27
  • 1970-01-01
  • 2016-11-11
  • 2013-06-08
  • 2017-10-23
  • 1970-01-01
  • 1970-01-01
  • 2014-03-03
  • 1970-01-01
相关资源
最近更新 更多