【发布时间】:2014-02-15 01:27:12
【问题描述】:
我想使用 parsley js 验证表单并使用 twitter 的引导工具提示显示错误(如果有)。
我读过这个link 是关于 twitter 引导程序与欧芹的集成,这个stackoverflow question 是关于 EventListeners。但是,我仍然无法显示错误消息。
我就是这样实现的
...
<input id="id_email" name="email" required=True parsley-type="email">
<button type="submit" onclick="javascript:$('#id_email').parsley(parsleyOptions); ">Next</button>
...
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
<script type="text/javascript" src="{% static "js/bootstrap.min.js" %}"></script>
<script type="text/javascript" src="{% static "js/parsley/parsley.js"%}"></script>
...
<script>
// parsley option
var parsleyOptions = {
// Sets success and error class to Bootstrap class names
successClass: 'has-success',
errorClass: 'has-error',
// Bootsrap needs success/error class to be set on parent element
errors: {
classHandler: function(el) {
return el.parent();
},
// Set these to empty to make sure the default Parsley elements are not rendered
errorsWrapper: '',
errorElem: ''
},
listeners: {
// Show a tooltip when a validation error occurs
onFieldError: function (elem, constraints, parsleyField) {
elem.tooltip({
animation: false,
container: 'body',
placement: 'top',
title: elem.data('error-message')
});
},
// Hide validation tooltip if field is validated
onFieldSuccess: function(elem, constraints, parsleyField) {
elem.tooltip('destroy');
}
}
};
</script>
...
工具提示不会因表单字段中的错误而触发(即使是空字段,也不会引发错误)。我怎样才能让欧芹触发工具提示起作用?
旁注:
- 关于“parsleyOptions”的代码取自here
- 所有js文件都可以访问
- 输入字段上的静态工具提示有效
- 当错误显示在 div 中时,parsley js 起作用
【问题讨论】:
-
我没有设置 twitter 工具提示来检查你的代码,但你能在
elem.tooltip之前添加一个console.log以确保正在执行侦听器吗? -
监听器似乎没有被触发。没有从 console.log 打印出来
-
从我可以调试的情况来看,
parsleyOptions没有加载。如果我执行parsley('validate'),则会显示错误消息。 -
我只是多看了一点你的代码:你为什么
onclick="javascript:$('#id_email').parsley(parsleyOptions);"喜欢这样?您不应在单击按钮时调用 parsley,而是将其设置为在页面加载时运行。
标签: javascript jquery twitter-bootstrap listener parsley.js