- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Ember 1.7 并且有一个带有验证的模型。
使用输入助手,我将一个 Action 绑定(bind)到 on="key-press"
扳机。
在触发的 Action 中(在我的 Controller 内),我正在调用 this.get('myModalInstance').validate()
我为通过和失败设置了处理程序。
奇怪的是,验证似乎与我输入的先前值一起触发。
因此,如果我的验证显示 numericality: { greaterThan: 0, lessThanOrEqualTo: 90 }
当我输入 9
,它验证正常,当我输入 91
它验证正常,当我输入 911
时它验证失败。
据我所知,这似乎是一个按键为时已晚。这是一个已知/常见问题吗?是否有避免此问题的提示?
编辑
我应该补充一点,我还尝试将我的验证失败 css 类绑定(bind)到错误对象的字段,如下所示:
{{input value=myValue classBinding=":form-input myValue.errors:validation-failure"}}
presence: true
的输入上的内容),有时在我更改不同的控件时进行验证表格。
最佳答案
如果您想在更新时验证某个(或少数)值,则不需要按键事件。使用observer (彻底阅读“观察者和异步”部分,这非常重要,并展示了如何避免这种滞后)相反:观察您感兴趣的字段的变化并验证。
或者,如果您想使用其中一个 jquery 验证插件,您可以创建一个 component ,例如将其称为验证形式,并使用 jquery 插件进行验证。这些插件通常自己处理所有需要的事件。此类组件的简单版本(应与 this 插件一起使用):
import Ember from 'ember';
export default Ember.Component.extend({
tagName: 'form',
onSubmit: null,
validationRules: {},
validationMessages: {},
didInsertElement() {
const form = this.$();
form.validate({
submitHandler: () => {
if (this.get('onSubmit')) {
this.sendAction('onSubmit');
}
},
rules: this.get('validationRules'),
messages: this.get('validationMessages')
});
}
});
{{#validated-form validationRules=validationRules}}
Form fields here
{{/validated-form}}
input
更新绑定(bind)值的事件,以及
input
在
keypress
之后触发事件
关于validation - Ember 验证触发太晚了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39412978/
我的 CollapsingToolbarLayout 工作不够准确。图 1 显示了初始状态,图 2 显示了我向下滚动时的状态。过渡发生得太早,它将以(在这种情况下)粉红色的空白区域结束。再次向上滚动时
我是一名优秀的程序员,十分优秀!