如何在 emberjs 上正确使用 jquery-validation?

How to use jquery-validation on emberjs properly?

我正在尝试创建一个简单的验证来要求名称(稍后将添加更多验证)。该应用程序是一个 ember 应用程序,我们要使用 jquery validation.

我无法获得基本验证 运行ning。这是我的:

//index.html
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8.1/jquery.validate.min.js"></script>

... 
//body and such//
...

<script>
  $('#salesForm').validate();
</script>

</body>

在组件内部,比如销售表格:

//app/components/sales-form/template.emblem

form id="salesForm"
  ...
  .form-group
    label Some Sales Info
      = input type="text" disabled=false value=salesNumber placeholder="Sales Number" class="form-control" required

  button{action: 'clickNSave'}
  ...

这给了我一个构建错误,因为 emblem 无法识别输入的 required

如何在使用标志作为模板的 ember 应用程序上使用 jquery-验证创建简单验证?

附加问题,我对 index.html 的验证是否正确,运行 验证在最后,就在关闭 body 标签之前?如果没有,插入 $('#someForm').validate(); 的最佳方法是什么?

This gives me a build error, because emblem does not recognize required on the input.

What about required="required" or required=required? 否则,我不知道您应该如何使用 Ember.js 添加此属性。

... to run the validation...

你没有"running"验证。您是 "initializing" 表单上的 jQuery 验证插件。

... at the very end, right before closing body tag? If not, where is the best way to insert $('#someForm').validate();?

$('#someForm').validate() 只是在 a DOM ready handler 中被调用,它是在顶部、底部还是其他任何地方都没有关系,只要它被调用 after 你包括 jQuery 和插件。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8.1/jquery.validate.min.js"></script>

....

<script>
    $(document).ready(function() {   // ensures DOM is fully constructed
        $('#someForm').validate();   // initialize the plugin on #someForm
    });
</script>

否则,如果您在 head 中放入没有 的 DOM 就绪处理程序,则 form 尚未在 DOM 并且您对 .validate() 的调用将失败。

How can I create a simple validation using jquery-validation on ember app that uses emblem for template?

我没看到您在哪里为 input 元素指定了 name 属性。 jQuery 验证插件 mandates that any form element being validated must contain a unique name attribute.

= input type="text" name="sales_number" required="required" disabled=false value=salesNumber placeholder="Sales Number" class="form-control" 

有关正确使用此插件的更多信息,请参阅 the documentation as well as the SO wiki page