我尝试使用parsley来验证meteor:Using Parsley.js with Meteor using HTML Code
我在Ubuntu 13.10上运行流星0.6.6.3,添加了包jquery并从大气(https://atmosphere.meteor.com/package/parsleyjs)添加了欧芹1.1.7和陨石。
我还测试了来自client / lib的当前版本1.2.2的欧芹(在用mrt删除parsleyjs之后)。
知道我无法使用HTML标记进行验证我创建了一个像这样的模板
<template name="new_customer">
<form id="new_customer_form">
<div class="newCustomer">
<div class="lookupcell">
<input type="text" size="1"
name="new-customer-name"
id="new-customer-name"
class="new-customer-name"
placeholder="neue Firma/Person"
parsley-notblank="true" />
</div>
<div class="lookupcell">
<input type="text" size="1" id="new-customer-email"
name="new-customer-email"
id="new-customer-email"
parsley-type="email"
parsley-trigger="keyup"
class="new-customer-email" placeholder="Email" />
</div>
</div>
<div style="text-align: right;">
<button type="submit">Add</button>
</div>
</form>
</template>
以及以下用于设置的javascript
Template.new_customer.rendered = function () {
console.log("rendered new_customer");
$new_customer_form = $( '#new_customer_form' );
if (! $new_customer_form) {
console.log("form not found.");
return;
}
$new_customer_form.parsley();
$new_customer_form.parsley( 'addItem', '#new_customer_name' );
};
当我尝试使用以下stacktrace添加字段#new_customer_name时,meteor在最后一行的渲染时崩溃
[09:44:11.969] "Exception from Deps afterFlush function: ParsleyForm.prototype.addItem@http://localhost:3000/packages/parsleyjs.js?ed9f338553f590de7edeb7b3e5ca8cb568f2e74d:1152
bind@http://localhost:3000/packages/parsleyjs.js?ed9f338553f590de7edeb7b3e5ca8cb568f2e74d:1295
$.fn.parsley@http://localhost:3000/packages/parsleyjs.js?ed9f338553f590de7edeb7b3e5ca8cb568f2e74d:1305
Template.new_customer.rendered@http://localhost:3000/client/X4Lizenzen.js?7d0644137e559b675577266ad6e2f78f087b3453:151
Template.__define__/partial/html</html<.rendered@http://localhost:3000/packages/templating.js?5944cd5e16b26fbf83959a0fe92d7754029a624d:181
scheduleOnscreenSetup/</<@http://localhost:3000/packages/spark.js?3a050592ceb34d6c585c70f1df11e353610be0ab:443
_.forEach@http://localhost:3000/packages/underscore.js?13ab483e8a3c795d9991577e65e811cd0b827997:130
scheduleOnscreenSetup/<@http://localhost:3000/packages/spark.js?3a050592ceb34d6c585c70f1df11e353610be0ab:441
.flush@http://localhost:3000/packages/deps.js?5ac28feec1f3e0539889ecde598dd9d01e408b41:265
"
堆栈没有告诉我实际问题是什么(或者说我不明白:-) 所以我想知道链接问题的作者如何通过render()中的设置完成所有设置。任何人的想法?
更新:事实证明我犯了一个简单的错误,直到今天早上才发现。
我在模板中有id="new-customer-name"
,并尝试使用#new_customer_name
向欧芹注册该文件。这不起作用,更重要的是,连字符不能用于id-strings。纠正错误后,它工作。
答案 0 :(得分:0)
我想你需要添加data-parsley-validate,如下所示。如果它不使用它的工作让我知道。我想知道在表单中使用data-parsley-validate是如何呈现的。
表单id =“new_customer_form”data-parsley-validate