【问题标题】:jQuery delay error with Form Validator Plugin表单验证器插件的 jQuery 延迟错误
【发布时间】:2011-09-26 02:02:05
【问题描述】:

我有一个使用 ZURB.org 脚本的弹出框(运行良好)。在这个显示框中,我有一个表格,用户可以填写某些信息。这完美地验证了使用插件 - 呈现漂亮的错误消息对齐。

我的问题是,这是一个显示框,当用户点击显示框(退出)时,验证图标仍然出现在那里,直到用户手动点击它们。

我已经设法弄清楚如果他们单击框顶部的“退出”图标,它将通过以下代码关闭它们:

<a class="close-reveal-modal" onclick="$('#jobForm').validationEngine('hideAll');">Exit</a>

然而,我现在想使用一点 jQuery 在 3 秒后自动“隐藏”这些错误消息。

我目前的代码是:

<script>
$(document).ready(function() {
$("#job_submit").click(function() {
$('#jobForm').validationEngine('hideAll').delay(3000);
 });
 });
</script>

job_submit 是表单中提交按钮的 ID 和名称。我使用 Chrome 调试工具更进一步,并在控制台中编写了以下代码:

$('#jobForm').validationEngine('hideAll').delay(3000);

出现表单验证错误时。这返回错误“类型错误”。

从现在开始,我不确定如何解决这个类型错误。

一如既往,非常感谢您的帮助。

更新

Div 类的名称不同,由于某种原因,div 的第一部分是表单字段本身的名称,例如 jdesformError parentFormjobForm formError

但是,最后 2 部分似乎是一致的。

我在控制台中试过这个 - $('.jdesformError parentFormjobForm formError').delay(1000).trigger('click');

它以出色的方式通过了,但是当我物理单击它时,“错误”字段并没有消失,这与我正在使用的显示框有关吗?

【问题讨论】:

    标签: jquery jquery-validate


    【解决方案1】:

    这是一种方法:

    $(document).ready(function() {
        $("#job_submit").click(function() {
            // click all the errors at once
            $('.formError').delay(3000).trigger('click');
         });
    });
    

    【讨论】:

    • 非常感谢您的回答。我知道你从哪里来,然而,在检查 div 类的“错误”时,它们似乎附加到每个“表单字段名称” - 因此 - jdesformError parentFormjobForm formError。 jdes 是表单名称。有没有办法只点击包含“formError”的所有 div 类?
    • 我不明白你的意思。但。在上面的示例代码中,我使用了名为“formError”的验证器插件使用的通用类。此类适用于每个错误工具提示,与表单或输入名称无关。我认为它应该工作。无论如何,如果我在这里遗漏了什么,请告诉我。很高兴能提供帮助。
    • 我将您的代码输入到控制台,它可以工作! - $('.formError').delay(3000).trigger('click'); - 但它不能完全工作,因为一旦单击按钮就不会激活它?按钮代码是 所以我看不出为什么不呢?
    • 我将整个代码添加到控制台中,但运行后,似乎在控制台上返回了整个页面。删除 ready(function) 行,然后返回“提交”按钮,就好像模拟单击它一样,但是它仍然没有隐藏错误?但是,如果我确实按照上面评论中所示的方式放置了一行,它确实有效吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 2013-06-11
    • 1970-01-01
    • 2013-12-09
    • 1970-01-01
    相关资源
    最近更新 更多