`

解决jquery.validationEngine ajax验证不通过,还可以提交表单的问题

阅读更多

本文系属原创,转载注明出处,谢谢。   -AZ

由于最近项目是spring mvc + mybatis 还有一系列框架来开发,其中就包括这个js验证框架。

个人感觉其实挺方便的,但是有些地方还是不足(不知道是我没发现还是怎么地),一些基本的验证都可以满足我们的需求,而且简单如要求必填:validate[required]等等,这些基本的,我就不再叙述了,不懂的可以去网上查查。

(本文是需要对jquery.validationEngine有一定的了解)

主要是ajax验证这方面,出现问题较多,下面举出一个例子,希望能够帮助有这方面困惑的人。

如:我有一个字段名为accountName的输入框,要求在注册的时候ajax去服务器端验证是否在数据库中已经有这个名字了,如果有就提示,按照官网和网上的一些例子,大家都是知道的,需要在jquery.validationEngine-zh_CN.js中声明一个方法:

"ajaxUser": {
                    "url": "sys/account/validate"
                }

然后在输入框的类里面加上validate[required,custom[onlyLetterNumber ,ajax[ajaxUser]]]即可实现一些验证的基本操作。

但是有一个问题,不知道大家发现没有,当这个字段验证之后发现数据库中有这个用户名,并且给予了错误提示,还是可以提交表单(其他字段没有问题)。

我百思不得其解,硬着头皮看了它的源码,发现在jquery.validationEngine-zh_CN.js中的300多行处_onSubmitEvent的声明中,它居然只对那些没有声明为ajax[ajaxUser]的feild(字段)进行_checkAjaxFieldStatus验证,它给出的解释大概是:由于要提交ajax表单,所以我们不需要去验证这个ajax字段。它的意思是就是我们反正要提交过去,就没有必要在这验证了,反正就是没有验证,不符合我的要求

,我初略的看了它的源码,制定了一个解决方案与大家分享一下,如果有问题大家尽管提出来。

首先在jquery.validationEngine-zh_CN.js中将源码拉倒最后一段地方,找到:

$.validationEngine = {
        fieldIdCounter : 0,
        defaults : {

}

在里面最后加上一个自定义字段 ajaxField : ""

$.validationEngine = {
        fieldIdCounter : 0,
        defaults : {

        ...,

        ....,

        ajaxField : ""

}

然后在jsp页面,在将form表单绑定这个验证初始化处,加上要验证的字段,如:ajaxField:"accountName",

然后在jquery.validationEngine-zh_CN.js 中300多行的_onSubmitEvent里面加上:

//自己定义的验证
            if (options.ajaxField != "") {
                if (!methods._checkAjaxFieldStatus(options.ajaxField, options)) {
                    return false;
                }
            }

OK了,就是我们自己加上我们所需要的ajax验证字段.

 

----自定义验证函数-----

仿照主js文件的848行的结构模式,需要传递几个参数(field, rules, i, options)

function    customFunction(field,rules,i,options)

{

      var  reg = /\d+$/;

      if(!reg.test(field.val())){

               return   "出错信息!";

      }

     

}

然后在要验证的字段的类上添加这个方法validate[required,funcCall[customFunction]]

 

在提交的时候需要判断是否可以提交

if(!$("#fasttableForm").validationEngine("validate")){
    return;
  }

 

 

0
0
分享到:
评论

相关推荐

    jQuery.validationEngine 表单验证中文版

    jQuery.validationEngine是一款强大的JavaScript插件,专用于前端表单验证。这款插件以其简洁的API、丰富的验证规则和良好的国际化支持而备受青睐。在中文环境中,它可以为用户提供友好的中文提示,确保用户输入的...

    jQuery Validation Engine ( jQuery 表单验证插件)

    4. **AJAX验证**:一个显著的优势是,它支持AJAX异步验证,这意味着在用户提交表单之前,可以无需刷新页面就检查输入数据的有效性。这对于提高网页的响应速度和交互性非常有帮助。 5. **多语言支持**:Validation ...

    jquery.validationEngine 控件验证表单跟检测数据库是否有重名

    《jQuery.validationEngine控件在表单验证与数据库重名检测中的应用详解》 在Web开发中,表单验证是不可或缺的一环,它确保了用户输入数据的准确性和完整性。jQuery.validationEngine是一款强大的JavaScript验证...

    jquery表单验证插件validationEngine---个人修改

    **jQuery表单验证插件ValidationEngine详解** 在Web开发中,表单验证是必不可少的一环,它能够确保用户输入的数据符合预设的规则,从而提高数据的准确性和系统的稳定性。ValidationEngine是一款基于jQuery的强大的...

    JQuery.validationEngine表单验证插件(推荐)

    Ajax后台验证是JQuery.validationEngine的特色功能之一,它允许开发者定义全局的扩展验证规则,并且可以在服务器端定义消息内容,虽然该功能目前还不支持回调处理。此外,该插件支持其他自定义扩展,以满足不同项目...

    jQuery-Validation-Engine-master

    2. **包含资源**:将下载的压缩包解压后,将`css`目录下的样式文件(如`validationEngine.jquery.css`)和`js`目录下的JavaScript文件(如`jquery.validationEngine-en.js`和`jquery.validationEngine.js`)引入到你...

    表单验证jquery插件

    - **动态验证**:你可以在表单提交前、按钮点击后等事件中调用 `$.validationEngine('validate')` 来触发验证。 - **异步验证**:通过 `ajaxCall` 规则实现,例如邮箱地址的唯一性验证。 - **自定义事件**:插件提供...

    动态表单验证 jquery

    在动态表单验证领域,jQuery提供了一个强大且易于使用的解决方案,即`jquery.validationEngine.js`。这个插件提供了丰富的验证规则和友好的提示样式,使得创建交互式的表单验证变得简单。 首先,我们需要引入jQuery...

    jquery+ajax验证不通过也提交表单问题处理

    这种情况validationEngine验证不通过是不会提交表单的. 2 使用ajax提交表单,但是没有使用ajax验证.  这种方式也比较简单,在我们使用ajax请求前检查验证是否通过就可以,例如: 代码如下: //验证不通过时return   ...

    (六)struts2 spring3 mybatis-3.2.3jquery.validationEngineajax表单验证数据库重复

    【标题】"(六)struts2 spring3 mybatis-3.2.3 jquery.validationEngine ajax表单验证 数据库重复"所涉及的技术栈主要包括Struts2、Spring3、MyBatis3.2.3以及前端的jQuery.validationEngine和Ajax技术。...

    jQuery.Validator

    总的来说,jQuery.Validator通过其丰富的验证规则、多语言支持、Ajax验证和自定义功能,为开发人员提供了强大的表单验证工具。它不仅可以确保用户输入的数据有效,还可以通过良好的用户体验设计提升网站的质量。通过...

    validationEngine验证组件改样式

    validationEngine是一款基于jQuery的表单验证插件,它提供了丰富的验证规则和自定义错误消息功能,使得在网页中实现复杂的用户输入验证变得简单易行。这个压缩包文件可能包含了经过修改后的validationEngine验证组件...

    表单验证jQuery-Validation-Engine-master

    **jQuery Validation Engine** 是一个强大的JavaScript插件,主要用于前端网页上的表单验证。它通过提供丰富的自定义样式和多种验证规则,帮助开发者实现用户输入数据的有效性和格式验证,确保用户在提交表单前输入...

    Jquery验证插件

    本文介绍的是一个名为`validationEngine`的jQuery表单验证插件。 #### 三、功能特点 - **美观的验证提示**:该插件提供了美观的Tooltip效果来显示验证结果,增强了用户交互体验。 - **广泛的浏览器兼容性**:虽然...

    jquery validation 支持zepto第二版

    在IT行业中,前端开发是至关重要的一个领域,而jQuery Validation插件则是JavaScript中用于表单验证的常用工具,它提供了一套完整的解决方案来确保用户输入的数据满足预设的规则。Zepto.js则是一个轻量级的...

    表单无刷新验证

    8. **AJAX验证**:对于需要服务器端验证的场景,validationEngine可以发起AJAX请求进行异步验证,提高用户体验。 9. **集成其他框架**:除了基本的jQuery,validationEngine也可与其他前端框架(如Bootstrap、Vue、...

    jQuery-Validation-Engine:jQuery表单验证插件

    jQuery.validationEngine v3.1.0 寻找官方贡献者 这个项目已经进行了7年多了,现在我仅通过请求请求的贡献来维护该项目。 但是,我很乐意帮助提高代码质量并保持可接受的未解决问题。 概括 jQuery验证引擎是一个...

Global site tag (gtag.js) - Google Analytics