0

有没有办法在 ember 中使用 checkValidity() setCustomValidity() ?例如,在我的控制器中,提交后我有:

var inpObj = this.get('name');
if (inpObj.checkValidity() == false) {
    alert('ok');
}

当然这是我的车把代码:

{{input id="name" type="text" value=name placeholder="Your Name" required="true"}}

提交后,我收到以下错误消息:

inpObj.checkValidity 不是函数

4

2 回答 2

0

您需要获取 HTML5 元素而不是字符串来调用checkValidity函数。

var inpObj = this.get('name'); // this is only a string

您可以改用 jQuery:

var inpObj = Ember.$('#name')[0];

if (inpObj.checkValidity() == false) {
  alert('ok');
}

工作演示。

于 2015-11-19T16:04:06.607 回答
0

如果你想避免使用 jQuery,你可以在你的提交按钮上设置一个动作来为你运行有效的检查。

<button {{action "submitForm"}}>Your Button</button>

然后在您的控制器中执行操作:

actions: {
  submitForm() {
    var inpObj = this.get('name');
    if(!inpObj.checkValidity()) {
      // error handling
      alert('ok');
    } else {
      // save your data, or whatever you need to do
      this.transitionTo('some.route');
    }
  }
}
于 2015-11-19T19:13:35.660 回答