【发布时间】:2015-04-06 21:59:50
【问题描述】:
我有一个带有表单块的 HTML 页面
<div>
<form>
<div class="row">
...
<input required> a </input>
...
<div>
<div class="row">
...
<input required> b </input>
...
<div>
<div>
<button ng-click="expand()"> Expand </button>
<button type="submit" ng-submit="create()"> Start </button>
</div>
</form>
</div>
当我单击开始时,a 或 b 为空,显示消息:"Please fill out this field"(这是期望行为)。但是当我填写此字段并再次单击时,create() 未提交,我收到以下错误:An invalid form control with name='' is not focusable。
我也是这样尝试的:
<div>
<form ng-submit="create()">
<div class="row">
...
</div>
<div>
<button ng-click="expand()"> Expand </button>
<button type="submit"> Start </button>
</div>
</form>
</div>
但是即使我点击展开,create() 也会被执行而不是expand()。
我也尝试将 ng-submit 更改为 ng-click,但它不会验证字段是否已填写。
我的目的是如果其中一个字段为空,create() 将不会被执行,并且会显示正确的消息。
【问题讨论】:
-
您是否尝试为该展开按钮添加
type="button"属性? -
@BatuZet:不,我应该吗?
-
是的。这就是我问兄弟的原因:)
-
@BatuZet:我将它添加到展开按钮,但是当我点击开始并且该字段不为空时,我仍然得到
An invalid form control with name='' is not focusable. -
那是因为类型按钮是默认的
标签: javascript html angularjs forms