Javascript 角度事件处理,正确的实践使用模糊和点击相同的方法?
这可能是一个令人困惑的问题,我在Angular中有一个验证方法,检查我是否填充了select,基本上是对值的一个小检查。现在我看到,如果我通过tab键在键盘上切换表单,(模糊)事件开始播放,如果我使用(单击)处理程序,则选中鼠标单击事件 因此,我想向社区核实这是否是一种正确的做法,如果不是,那么,如果我同时使用事件并对它们调用相同的方法,那么更好的方法是什么 请在下面找到代码示例 下面的代码在单击和模糊时执行,然后尝试检查值,如果值不存在,则显示contractValidationMessage并显示一些错误消息,反之亦然Javascript 角度事件处理,正确的实践使用模糊和点击相同的方法?,javascript,angular,Javascript,Angular,这可能是一个令人困惑的问题,我在Angular中有一个验证方法,检查我是否填充了select,基本上是对值的一个小检查。现在我看到,如果我通过tab键在键盘上切换表单,(模糊)事件开始播放,如果我使用(单击)处理程序,则选中鼠标单击事件 因此,我想向社区核实这是否是一种正确的做法,如果不是,那么,如果我同时使用事件并对它们调用相同的方法,那么更好的方法是什么 请在下面找到代码示例 下面的代码在单击和模糊时执行,然后尝试检查值,如果值不存在,则显示contractValidationMessage
<select
class="form-control dropdown ng-pristine ng-valid ng-touched"
[(ngModel)]="clientModel.contract.signedBy" #contractSignedBy
(blur) = 'validateContractSignature(contractSignedBy)'
(click) = 'validateContractSignature(contractSignedBy)'
>
<option hidden value="" disabled selected>Singed by</option>
<option *ngFor="let user of userRoles">{{user}}</option>
</select>
<div class="validation-msg">{{contractValidationMessage}}</div>
</div>
我知道标准验证器将在您键入时运行。它们甚至会在您键入任何内容之前运行,因此在您键入任何内容之前,表单常常充满了错误。通常,您不需要像以前那样使用模糊:
(blur) = 'validateContractSignature(contractSignedBy)'
在您的情况下,看起来您只测试了一个必需的。Angular对此有一个标准验证器
<select required></select>
看看:
如果您想要更多地控制表单,那么应该签出反应表单,而不是模板驱动的表单感谢insight@jens,我将尝试实现相同的向上投票:)
<select required></select>