jquery validate() 返回未定义

发布于 2024-10-03 02:32:47 字数 814 浏览 0 评论 0原文

我正在尝试使用 Jquery 的验证插件来验证一个字段。我可以让它在一个简单的测试表单上运行,但是当我尝试将其插入我网站上的大型现有表单时,调用 validate 返回 undefined。它应该返回一个 Validator 对象。我该如何找出问题所在?

以下是正在运行的示例代码:

<script type="text/javascript">
function tst(ctrl) {
    var frm = $(ctrl).parents('form');
    alert('Is email valid? ' + frm.validate({ showErrors: function () { } }).element(ctrl));
}
</script>
<form id="form1" action="" method="post">
    <input type="text" name="email" onblur="tst(this)" class="email"/>
</form>

但是,如果我在更大的现有表单上尝试此操作,validate 调用将返回未定义,从而导致调用 element 时出现 JavaScript 错误。我认为一定有某种更大的形式使 validate “崩溃”,但它会是什么?

I'm trying to use the Validate plugin for Jquery just to validate one field. I can get it working on a simple test form but when I tried to plug it into a large existing form on my site, calling validate returns undefined. It's supposed to return a Validator object. How do I go about figuring out what's wrong?

Here is the example code that's working:

<script type="text/javascript">
function tst(ctrl) {
    var frm = $(ctrl).parents('form');
    alert('Is email valid? ' + frm.validate({ showErrors: function () { } }).element(ctrl));
}
</script>
<form id="form1" action="" method="post">
    <input type="text" name="email" onblur="tst(this)" class="email"/>
</form>

However if I try this on a much larger existing form, the validate call returns undefined, resulting in a JavaScript error calling element. I think there must be something in the larger form that makes validate "crash", but what could it be?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

呆° 2024-10-10 02:32:47

.valiate() 不返回布尔值,它设置验证。

要确定

或 input 元素是否有效,您可以调用 < code>.valid() 获取布尔结果。确保在 .validate() 之后调用此函数,否则 上将不会设置验证器。

.valiate() doesn't return a boolean, it sets up validation.

To determine whether a <form> or input element is valid you call .valid() to get a boolean result. Make sure to call this after .validate(), since there will be no validator setup on the <form> otherwise.

提笔落墨 2024-10-10 02:32:47

你尝试过使用 JQuery 对象吗?
而不是 var frm,使用 var $frm

var $frm = $(ctrl).parents('form');
alert('Is email valid? ' + $frm.validate({ showErrors: function () { } }).element(ctrl));

当您设置 frm 而不使用 $ 时,您将只存储 html纯 javascript 变量中的元素,未获取 JQuery 对象中的元素。

did you try using JQuery object..
instead of var frm, using var $frm:

var $frm = $(ctrl).parents('form');
alert('Is email valid? ' + $frm.validate({ showErrors: function () { } }).element(ctrl));

when you set frm without $ you would just store the html element in a pure javascript variable, not getting the element in a JQuery object..

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文