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

yizhihongxing

下面是详细讲解“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 中断请求几种方案详解

    JavaScript 中断请求几种方案详解 在Web开发中,我们经常需要发送Ajax请求来获取数据或向后端发送请求,但有时候我们需要中断请求。这篇文章将会详细介绍JavaScript中断请求的几种方案。 方案一:使用XMLHttpRequest的abort()方法 XMLHttpRequest(以下简称XHR)是一个Web API接口,用于发送HTTP请求和…

    JavaScript 2023年6月11日
    00
  • javascript实现的HashMap类代码

    JavaScript实现的HashMap类代码 HashMap是一种非常常用的数据结构,用于提高键值对查找的效率。JavaScript作为一门弱类型语言,没有原生的HashMap,但我们可以用Object对象来实现一个简单的HashMap类。 实现细节 使用Object对象存储键值对,遍历时需要注意使用hasOwnProperty方法判断是否为对象本身的属性…

    JavaScript 2023年6月11日
    00
  • JavaScript面向对象的程序设计(犯迷糊的小羊)

    好的。首先,JavaScript是一门基于对象的编程语言。它提供了许多面向对象编程的特性,如对象、类、继承等。如果您曾经在其他编程语言中使用过面向对象编程,那么理解JavaScript的面向对象编程会相对轻松些。 一、对象 面向对象编程的基础是对象。JavaScript中的对象是一个键-值对的集合,其中值可以是属性或方法。对象可以通过字面量或构造函数创建。 …

    JavaScript 2023年5月27日
    00
  • 深入理解javascript的执行顺序

    深入理解JavaScript的执行顺序是编写优秀JavaScript代码的基础。JavaScript的执行顺序遵循一定的规则,理解这些规则可以帮助我们理解代码的执行顺序,避免出现错误。 1. 执行栈 在深入了解JavaScript的执行顺序之前,我们需要了解执行栈的概念。执行栈是一个存储函数调用的栈结构,当JavaScript代码执行的时候,函数调用会被依次…

    JavaScript 2023年5月18日
    00
  • JS实现的小火箭发射动画效果示例

    JS实现的小火箭发射动画效果是一种常见的动态效果,通常在网页中应用较多。以下是该效果的完整攻略: 实现思路 使用HTML和CSS创建火箭图形和发射台。 使用JavaScript实现动画效果。 整合HTML、CSS和JS,将动画集成到网页中。 创建HTML结构 首先,我们需要在HTML中创建火箭和发射台的DOM结构。示例代码如下: <div class=…

    JavaScript 2023年6月10日
    00
  • JavaScript进阶教程(第二课)

    下面是“JavaScript进阶教程(第二课)”的完整攻略: JavaScript进阶教程(第二课) 变量作用域 在JavaScript中,变量的作用域有两种:全局作用域和局部作用域。 全局作用域 全局作用域就是在整个JavaScript程序中可见的作用域,变量在全局作用域中声明时,可以被程序中任何地方读取和修改。 示例代码: var globalVaria…

    JavaScript 2023年5月18日
    00
  • JS实现n秒后自动跳转的两种方法

    下面我将针对“JS实现n秒后自动跳转的两种方法”进行详细讲解。 方法一:使用setTimeout()方法 我们可以使用JS的setTimeout()方法来实现n秒后自动跳转,具体操作步骤如下: 在页面中添加JS代码,定义计时器,并使用setTimeout()方法来实现需要跳转的URL地址。 <script> // 设置跳转的URL地址 var t…

    JavaScript 2023年5月27日
    00
  • js 效率组装字符串 StringBuffer

    首先,需要明确的是,JavaScript 中没有对应 Java 中 StringBuffer 的类。但是,我们可以使用数组来完成字符串的效率组装,具体步骤如下: 定义空数组 const sb = []; 将要组装的字符串一段一段地推进数组里,并使用join()方法将数组连接成字符串 sb.push(‘hello’); sb.push(‘world’); co…

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