dojo小例子(34)带Ajax异步验证功能的ValidationTextBox
发布时间:2020-12-16 21:21:57 所属栏目:百科 来源:网络整理
导读:define([ "dojo/_base/declare","dijit/form/ValidationTextBox","dojo/request"],function(declare,ValidationTextBox,request) {return declare("AjaxValidationTextBox",[ ValidationTextBox ],{ajaxUrl : null,ajaxLock : false,// 钩子,防止出现死循环
define([ "dojo/_base/declare","dijit/form/ValidationTextBox","dojo/request" ],function(declare,ValidationTextBox,request) { return declare("AjaxValidationTextBox",[ ValidationTextBox ],{ ajaxUrl : null,ajaxLock : false,// 钩子,防止出现死循环 ajaxResult : false,oldValue : null,// 用于对比输入值是否有变化 changed : false,// 标识:输入值是否有变化 isValid : function() { var widget = this; this.changed = false; if (this.get('value') != this.oldValue) { this.changed = true; } if (!this.ajaxLock && this.ajaxUrl && this.get('value') && !this.focused && this.changed) { this.oldValue = this.get('value'); this.ajaxLock = true; request(widget.ajaxUrl + encodeURIComponent( widget.get('value') ),{ handleAs : 'text' }).then(function(result) { widget.ajaxResult = (result == "true" ? true : false); widget.validate(); // 会调用isValid方法重新校验输入的值,弹出tip widget.ajaxLock = false; }); } return this.ajaxResult; } }); }); 用法: <input data-dojo-type="my/AjaxValidationTextBox" data-dojo-props=" required : true,missingMessage:'编号不能为空!',ajaxUrl:/rest/isNumValid/',invalidMessage:'编号已存在!'" /> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |