Extjs表单输入框异步校验的插件实现方法

下面是详细讲解“Extjs表单输入框异步校验的插件实现方法”的完整攻略。

什么是Extjs表单输入框异步校验的插件?

在使用Extjs框架编写表单时,常常需要对表单中的输入框进行校验,以保证用户输入的内容符合要求。而有些校验规则需要通过异步方式进行,比如从后台获取数据判断输入是否合法。这时就需要用到Extjs表单输入框异步校验的插件。

实现方法

具体实现方法如下:

  1. 引入必要的js文件。在使用Extjs框架时,需要引入以下几个js文件:
<script type="text/javascript" src="/extjs/ext-all.js"></script>
<script type="text/javascript" src="/extjs/plugins/FormValidation.js"></script>
<script type="text/javascript" src="/extjs/plugins/AsyncFormValidation.js"></script>

其中,FormValidation.js用来进行表单校验,AsyncFormValidation.js则是进行异步校验时用到的插件。

  1. 在表单中添加要进行异步校验的输入框。比如下面是一个用户名输入框:
{
    xtype: 'textfield',
    fieldLabel: '用户名',
    name: 'username',
    id: 'username',
    allowBlank: false,
    vtype: 'alphanum',
    maxLength: 20,
    validator: function(value){
        if(value.length >= 6 && value.length <=10){
            return true;
        }else{
            return "用户名长度必须在6~10个字符之间!";
        }
    }
}
  1. 在表单中添加异步校验规则。我们可以使用AsyncFormValidation插件提供的async属性来设置异步校验规则。比如下面是一个调用后台校验用户名是否唯一的规则:
{
    xtype: 'textfield',
    fieldLabel: '用户名',
    name: 'username',
    id: 'username',
    allowBlank: false,
    vtype: 'alphanum',
    maxLength: 20,
    async: {
        url: '/check_username.php',  // 校验用户名的后台接口
        timeout: 2000,  // 超时时间
        method: 'POST',  // 请求方法为POST
        scope: this,  // 作用域为当前组件
        success: function(response){
            var data = Ext.JSON.decode(response.responseText);
            // 根据后台返回的数据进行校验
            if(data.success){
                return true;
            }else{
                return data.msg;
            }
        },
        failure: function(response){
            // 校验失败时的处理
            Ext.Msg.alert('提示', '请求失败,请稍后再试!');
        }
    }
}

在以上代码中,我们设置了异步校验的相关参数,包括异步请求的地址、超时时间、请求方法、作用域等。同时,我们定义了当异步请求成功时的处理方法和失败时的处理方法。成功时我们可以根据后台返回的数据进行校验,失败时我们弹出一个提示框。

示例说明

下面我将给出两个示例说明:

示例1

假设我们需要校验一个电话号码是否已经被注册。我们可以设置一个异步校验规则,在后台查询该电话号码是否已经存在。如果该电话号码已经存在,则校验失败。

{
    xtype: 'textfield',
    fieldLabel: '电话号码',
    name: 'phone',
    id: 'phone',
    allowBlank: false,
    vtype: 'phone',  // 使用phone类型校验输入
    async: {
        url: '/check_phone.php',  // 校验电话号码的后台接口
        timeout: 2000,
        method: 'POST',
        scope: this,
        success: function(response){
            var data = Ext.JSON.decode(response.responseText);
            if(data.success){
                return true;
            }else{
                return data.msg;
            }
        },
        failure: function(response){
            Ext.Msg.alert('提示', '请求失败,请稍后再试!');
        }
    }
}

示例2

假设我们需要校验一个商品编号是否已经存在。我们可以设置一个异步校验规则,在后台查询该商品编号是否已经存在。如果该商品编号已经存在,则校验失败。

{
    xtype: 'textfield',
    fieldLabel: '商品编号',
    name: 'goods_no',
    id: 'goods_no',
    allowBlank: false,
    maxLength: 20,
    async: {
        url: '/check_goods_no.php',  // 校验商品编号的后台接口
        timeout: 2000,
        method: 'POST',
        scope: this,
        success: function(response){
            var data = Ext.JSON.decode(response.responseText);
            if(data.success){
                return true;
            }else{
                return data.msg;
            }
        },
        failure: function(response){
            Ext.Msg.alert('提示', '请求失败,请稍后再试!');
        }
    }
}

以上就是“Extjs表单输入框异步校验的插件实现方法”的详细攻略,希望能够帮助到你!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Extjs表单输入框异步校验的插件实现方法 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 《零基础学JavaScript 电子教程/随书光盘》电子教程/随书光盘[ISO]迅雷下载

    首先需要明确的是,对于版权受保护的资源,存在未经授权的下载行为是不被允许的。因此,我们不会提供任何关于非法下载资源的教程和攻略。 但是,如果你已经合法取得了《零基础学JavaScript 电子教程/随书光盘》电子教程/随书光盘[ISO]资源,可以按照以下步骤进行下载。 步骤1:使用迅雷软件进行下载 打开迅雷软件并登录。 复制下载链接。 在迅雷界面中点击“新建…

    JavaScript 2023年5月27日
    00
  • JavaScript实现随机点名小程序

    下面是JavaScript实现随机点名小程序的完整攻略: 确定需求 在实现随机点名小程序之前,需要确定具体的需求。本程序的功能主要是:随机从一组学生名单中选中一位学生,并将该学生的名字展示出来。在此基础上,还可以加入更多的功能,比如记录已经点名的学生,排除已经点名的学生,或者在每次点名之后自动刷新学生名单等等。 准备工作 在编写代码之前,需要准备好页面的布局…

    JavaScript 2023年6月11日
    00
  • js获取dom的高度和宽度(可见区域及部分等等)

    要获取DOM元素的宽度和高度,我们可以使用JavaScript中的clientWidth和clientHeight属性。这两个属性返回的是DOM元素的可视区域大小,不包括边框和外边距。以下是获取DOM元素宽度和高度的代码: const element = document.getElementById(‘myElement’); const elementW…

    JavaScript 2023年6月10日
    00
  • 深入了解Javascript的事件循环机制

    深入了解JavaScript的事件循环机制 JavaScript 是一门单线程语言,这意味着在 JavaScript 中,代码是按顺序执行的,只有前一个任务执行完成后,才会执行下一个任务。但是 JavaScript 中有许多异步操作,如定时器、事件监听器、网络请求等,这些操作不会阻塞代码的执行,可以同时执行。那么在 JavaScript 中是如何处理异步操作…

    JavaScript 2023年5月28日
    00
  • javascript中的五种基本数据类型

    当谈到JavaScript的数据类型时,你应该了解有五个基本数据类型,分别是: 数字类型 (Number) 字符串类型 (String) 布尔类型 (Boolean) 空值类型 (Null) 未定义类型 (Undefined) 下面我们一一来详细讲解: 1. 数字类型 (Number) JavaScript中的数字类型包括整数和浮点数。 它们都被表示为Num…

    JavaScript 2023年5月17日
    00
  • js判断日期时间有效性的方法

    下面就给大家详细讲解一下js判断日期时间有效性的方法。 前言 在开发web应用程序时,时间日期是一个常见的数据类型。在应用程序中,我们需要对用户输入的时间日期进行校验,以保证数据的正确性。本文将介绍如何使用js对时间日期的有效性进行判断。 方法一:正则表达式 使用正则表达式判断日期时间的有效性是一种常用且简单的方法。JS中对日期进行比较主要用到了Date对象…

    JavaScript 2023年5月28日
    00
  • JS中的异常处理方法分享

    JS中的异常处理是一个重要的主题,因为JS是一门弱类型、动态语言,如果没有健壮的异常处理机制,程序就会出现各种意外的运行错误。在这里,我将分享一些JS中异常处理的方法。 try-catch try-catch是JS中处理异常的最常用方法,可以在try代码块中放置可能会抛出异常的代码块,如果有异常被抛出,就会被catch代码块捕获,并进行相应的处理。例如: t…

    JavaScript 2023年5月27日
    00
  • VueJs单页应用实现微信网页授权及微信分享功能示例

    下面我来为你详细讲解“VueJs单页应用实现微信网页授权及微信分享功能示例”的完整攻略。 简介 微信网页授权和微信分享功能是开发微信公众号和小程序时常用的功能,本文将介绍如何在VueJS单页应用中实现这两个功能。 微信网页授权 在公众平台中注册一个微信公众号,并且在公众号设置中添加JS接口安全域名,否则无法使用微信JS-SDK功能。 在网页中引入微信JS-S…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部