首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery.validate触发后终止字符计数器

jQuery.validate触发后终止字符计数器
EN

Stack Overflow用户
提问于 2012-10-13 03:34:10
回答 1查看 342关注 0票数 2

在对这个问题进行了广泛的搜索之后,我一直无法自己找到一个问题的答案,因为我遇到的一个问题是,jQuery验证插件正在蚕食我用于通过PHP发送短信的表单的一个字符计数插件。

如果您在前端进入表单,并开始在文本区域中键入,计数器将正常工作,当然验证不会触发,因为元素中有文本……但是,出于测试的目的,如果您尝试在没有消息的情况下提交表单,则会触发验证,并显示与textarea相关的错误消息;当您输入副本时,验证消息会消失,但字符计数器不再起作用。

下面是我使用的字符计数器:http://cssglobe.com/jquery-plugin-simplest-twitterlike-dynamic-character-count-for-textareas/

下面是我的脚本布局:

代码语言:javascript
复制
$(function(){
    //irrelevant functions have been omitted

    $("#smsMessage").charCount({
        allowed:110,        
        warning:10, 
    });
    $('form').validate();
});

我甚至尝试重新触发计数器函数,作为验证的回调,但这只会导致在textarea旁边放置一个重复的、非功能性的计数器。

代码语言:javascript
复制
$(function(){
    //irrelevant functions have been omitted

    $("#smsMessage").charCount({
        allowed:110,        
        warning:10, 
    });
    $('form').validate({
        invalidHandler: function(form, validator) {
            var errors = validator.numberOfInvalids();
            if (errors) {
                $("#smsMessage").charCount({
                    allowed:110,        
                    warning:10, 
                });
            }
        }
    });
});

诚然,这是我一段时间以来的第一个单独的webDev项目--它是为我的未婚妻和我的婚礼网站准备的,所以我正在试着把它升级一点。如果有任何方法可以让计数器和验证很好地结合在一起,那就太好了。如果不是,这并不是世界末日,但它仍然不是理想的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-13 04:56:09

问题是你的计数器插件在跟踪计数器的位置上并不是很聪明。它通过将计数器放在文本区之后来创建计数器。验证插件对它的错误消息做同样的事情。最简单的修复方法是告诉验证插件将错误放在其他地方。试试这个:

代码语言:javascript
复制
$('form').validate({
    errorPlacement: function(error,element){
        if (element.attr('id') == 'smsMessage'){
            error.insertAfter(element.next());
        } else {
            error.insertAfter(element);
        }            
    }       
});​

我制作了一个工作示例,以便您可以试用它:http://jsfiddle.net/ryleyb/6HKuq/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12865886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档