【发布时间】:2013-08-09 22:30:24
【问题描述】:
我希望以类似于 Sparky 在 2013 年 2 月 7 日提供的示例的方式将 Jquery Validate 与 Tooltipster 结合使用: How to display messages from jQuery Validate plugin inside of Tooltipster tooltips?
不同之处在于验证方法是通过脚本函数而不是表单提交。我还想将工具提示附加到一个类而不是整个表单输入。 验证完成后,该函数将调用另一个函数。
它有效,但显示以下警告:
Non-standard document.all property was used. Use W3C standard document.getElementById() instead.
我相信 document.all 已被弃用,并且在未来的浏览器版本中不存在。但是我不明白为什么我的代码显示警告!我已经用我的代码消除了所有其他可能的原因。所以我认为它要么是我没有看到的东西,要么是导致警告的 Tooltips + Validation 组合库。
这是我的 JS 代码:
// initialize tooltipster on text input elements
$('.valid1').tooltipster({
trigger: 'custom',
onlyOne: false,
position: 'right'
});
// initialize validate plugin on the form
var validator = $('#propCreate').validate({
onsubmit: false,
errorPlacement: function (error, element) {
$(element).tooltipster('update', $(error).text());
$(element).tooltipster('show');
},
success: function (label, element) {
$(element).tooltipster('hide');
},
rules: {
pkg: { required: true },
TCaccept: { required: true }
},
messages: {
TCaccept: "Please check acceptance of our terms.",
pkg: "Please select suitable package."
},
submitHandler: function (form) {
}
});
//Validation
// this is to validate terms checkbox & Pkg
$("#btnNext").click(function () {
if (validator.form()) {
btnNextContinued()
}
});
是否有人对此有修复/解决方法,或者可以告诉我哪里出错了?
更新:在 Sparky 及其乐于助人的 cmets 的大量观察之后 - Firebug 中的一个错误是导致误报警告的原因。带有验证单选和复选框验证的工具提示器目前可以正常工作。
【问题讨论】:
-
我目前不在可以为您设置 jsFiddle 的地方。但是,您可能需要考虑使用
$('#propCreate').valid()而不是validator.form()以编程方式测试您的表单。 -
我想我的意思是你不需要将
.validate()存储在一个变量中,因为无论如何它只应该被调用一次。 -
感谢 Sparky,刚刚在站点文档的多部分示例中看到了这一点。按照您的建议更新了我的代码。它确实有效,但 FF 中的警告确定了新浏览器的未来问题,这些新浏览器删除了“document.all”——而是期待 documentById。我宁愿解决警告而不是忘记它,然后在将来使用 IE11 等中断生产代码。
-
您是否尝试过更新到 jQuery 1.9.1、jQuery Validate 1.11.1 和最新版本的 Tooltipster?否则,我看不到您的代码可能有任何问题。虽然我从未看到警告,但这个修改后的版本是我会做的,对我来说似乎很好:jsfiddle.net/4wXBG/3
-
您的 Firebug 是最新的吗? I was reading about this "Non-standard document.all property" warning as part of a Firebug bug and nothing more.我对此研究得越多,就越觉得这不是问题。
标签: javascript jquery jquery-validate tooltipster