Ext 的文本输入控件实现即时判断输入内容是否已存在与系统中


//以下为前端的相关代码(Extjs js文件中)

this.bIsExist = false;//本类所需成员变量


xtype : 'textfield',
fieldLabel : '用户名',
name : 'AddForm_sName',
vtype : 'alphanum',
vtypeText : '只能输入字母和数字',
labelStyle : 'text-align:right;',
validator : this.checkUserName,//validator为自定义校验函数属性
invalidText : '此用户已存在!',
allowBlank : false
        /**
	 * 功能:验证用户是否相同
	 */
	checkUserName : function() {


		//定义变量值
		var username = this.ownerCt.find('name','AddForm_sName')[0].getValue();//获取textfield的name属性值
		
		/*-------------- 发送请求----------------*/
		Ext.Ajax
				.request({
					url : 'user_sameName.do',
					params : {
						name : username
					},
					method : 'POST',
					scope : this.ownerCt,
					success : function(response, options) {
						var responseArray = Ext.util.JSON
								.decode(response.responseText);
						if (responseArray.success == true) // 用户名已经被使用
							this.bIsExist = true;// 给变量赋值
						else
							// 用户名可以使用
							this.bIsExist = false;// 给变量赋值
					}
				});
		 /*-------------/ 发送请求----------------*/
		return this.ownerCt.bIsExist;
	}




//以下为后端的相关代码


验证用户是否存在的Action类

        /**验证用户是否存在
	 * */
	public String sameName(){
		super.setContentType(super.JSON);
		
		//验证用户是否存在
		try {
			if(userService.getSameName(name))
				super.outPrint("{success:true}");
			else
				super.outPrint("{success:false}");
		} catch (SQLException e) { 
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "json";
	}

验证用户是否存在的Service层


     /**验证验证用户是否存在
      * @throws SQLException 
      * */
    public boolean getSameName(String name) throws SQLException{
    	return userDao.getSameName(name); 
    }


验证用户是否存在的Dao层


         /**验证验证用户是否存在
          * @throws SQLException 
	  * */
	public boolean getSameName(String name) throws SQLException{
		int index = 0;
		index = (Integer) sqlMapClient.queryForObject("User.getSameName", name); 
		if(index > 0){
			return false; 
		}
		return true;
	}



验证用户是否存在的Sql语句(ibatis)
<!--验证用户名是否存在-->
	<select id="getSameName" parameterClass="string" resultClass="int">
		<![CDATA[
		select count(*) from sd_user where name=#name#
		]]>
	</select>




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值