dojo demo, 服务器验证用户名是否已经被使用

这个demo有助于理解JS与服务器的协同工作。

文档结构如上图,  主要是三个文件: main.js  table.html validateUserName.jsp (代码见文章末尾)

页面打开如下:

选中第一个输入框后,右侧出现定义好的提示信息。如下:

输入“olduser" , 为了简化验证过程,在validateUserName.jsp 中用硬编码验证用户名是否为”olduser", 返回JSON字串。 如果是,则返回{valid:false}, 否则返回{valid:true}

处理流程:

用户输入“olduser" ,  并把焦点移出当前输入框后, onchange 事件触发, 调用main.js中的usernameOnChange函数, 此函数发送验证请求到server, 由validateUserName.jsp处理此请求。 validateUserName.jsp判断”olduser"为已有用户名, 于是返回{valid:false}到浏览器。 浏览器收到服务器的response之后,由main.js中的usernameValidationHandler函数处理响应,它判断valid为false,
则显示定义好的error message.

valid为true的情况与为false的情况类似, 不会显示error message.

有个示解决的问题是当valid为false为false时,error message 并未显示到页面上,应该是dijit.byId("tableuserName").displayMessage(errorMessage);这一句没有生效,这个问题暂时没能解决,在后面的学习中会留意看怎么样找到方法解决。

table.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css" title="text/css">
			@import "dijit/themes/claro/claro.css";
			@import "dojox/form/resources/CheckedMultiSelect.css";
</style>
<script type="text/javascript" src="dojo/dojo.js"  djConfig="parseOnLoad: true"></script>
<script type="text/javascript" src="main.js"></script>
<script>
	dojo.require("dojo/parser");
//	dojo.require("dijit/form/Button");
	dojo.require('dijit.form.ValidationTextBox');

//dojo.require("dojo/data/ItemFileReadStore");

</script>
</head>
<body id="content" class="claro">
	<div id="mortgages" class=" ">

		<div class="" id="dijit/form/Form">
			<h2 class=""></h2>
			<p style="width:700px;">
				please enter you name and address
			</p>

			<div class="">
				<div class="">
				<label for="userName">User Name</label>
				<input type="text" name="userName" value=""
				    onchange="usernameOnChange"
				    data-dojo-props="" id="tableuserName"
				    		dojoType="dijit.form.ValidationTextBox"
		promptMessage="oops"
		invalidMessage="invalid"
		missingMessage="Ooops!  You forgot your first name!" />	

				</div>
				<div class="">
				<label for="Address">Address</label>
				<input type="text" name="Address" value=""
				    data-dojo-type="dijit/form/ValidationTextBox"
				    onchange=""
				    data-dojo-props="trim:true, propercase:true" id="tableAddress" />	

				</div>

			</div>
		</div>

	</div>

	<div id="result"></div>

</body>
</html>

main.js

function usernameOnChange() {
	console.log("run");
	var userName = dijit.byId("tableuserName").getValue();
	if(userName == ""){
		console.log("user name is empty");
		return;
	}

	dojo.xhrGet({
		url:"validateUserName.jsp?userName=" + userName,
		handleAs:"json",
		handle:usernameValidationHandler
	});
}
function usernameValidationHandler(response){
	//console.log("get response");
	dijit.byId("tableuserName").displayMessage("yes");
	if(!response.valid){
		var errorMessage = "user name already exists";
		//console.log(errorMessage);
		dijit.byId("tableuserName").displayMessage(errorMessage);
	}
}

validateUserName.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	try{
		System.out.println("UserName :"+
		request.getParameter("userName"));
		if(request.getParameter("userName").equals("olduser")){
			out.println("{valid:false}");
			System.out.println("To Brower : false");

		}else{
			out.println("{valid: true}");
			System.out.println("To Brower : true");
		}
	}catch(Exception ex){
		out.println(ex.getMessage());
		ex.printStackTrace();
	}
%>

dojo demo, 服务器验证用户名是否已经被使用,布布扣,bubuko.com

时间: 2024-10-24 13:07:41

dojo demo, 服务器验证用户名是否已经被使用的相关文章

【java项目实践】详解Ajax工作原理以及实现异步验证用户名是否存在+源码下载(java版)

一年前,从不知道Ajax是什么,伴随着不断的积累,到现在经常使用,逐渐有了深入的认识.今天,如果想开发一个更加人性化,友好,无刷新,交互性更强的网页,那您的目标一定是Ajax. 介绍 在详细讨论Ajax是什么之前,先让我们花一分钟了解一下Ajax做什么.如图所示: 如上图展示给我们的就是使用Ajax技术实现的效果.伴随着web应用的越来越强大而出现的是等待,等待服务器响应,等待浏览器刷新,等待请求返回和生成新的页面成为了程序员们的最最头疼的难题.随着Ajax的出现使web应用程序变得更完善,更友

C++使用Socket 邮箱登录服务器验证

转载:http://blog.csdn.net/zengraoli/article/details/36866241 转载:http://blog.csdn.net/alger_magic/article/details/25164187 一.如果想单纯验证一个邮箱帐号是否存在,我们可以拿邮箱帐号和密码请求服务器验证. .h文件 #ifndef _AUTHENTICATIONEMAIL_H_ #define _AUTHENTICATIONEMAIL_H_ #include <atlenc.h>

使用Ajax验证用户名

Ajax是一项很重要的技术,下面简要举个例子,来解释如何使用Ajax.步骤如下:使用Ajax验证用户名使用文本框的onBlur事件 使用Ajax技术实现异步交互创建XMLHttpRequest对象通过 XMLHttpRequest对象设置请求信息向服务器发送请求创建回调函数,根据响应状态动态更新页面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

jsp+ajax实现无刷新鼠标离开文本框即验证用户名

欢迎大牛提意见 jsp+ajax实现无刷新,鼠标离开文本框即验证用户名,操作如下:新建一个输入页面,起名为input.jsp, [java] <%@ page contentType="text/html; charset=utf-8"%> <html> <head> <title>jsp+ajax实现无刷新_鼠标离开文本框即验证用户名</title> <meta http-equiv="Content-Typ

使用ajax验证用户名重复

继上次的用户注册登录案例之后,对其中的部分功能再做进一步改进.上一版中用户提交表单后才对用户名进行校验,虽然做了回显,但还是感觉功能弱了些.为了能有更好用户体验,不是在用户提交表单后才给提示,而是在用户输入用户名后就立即对该用户名进行数据库校验,经过晚上的测试现在可以使用纯js版和jquery版. 准备工作,先编写好验证用户名重复的后台Servlet程序,然后在jsp或html中使用js对用户名进行验证,当用户输入用户名文本框推动焦点时立即触发验证.下面是jquery代码. <%@ page l

利用jQuery实现的Ajax 验证用户名是否存在

异步刷新实现方式有多种,也可以借助JS的多种框架,下面是使用jQuery框架实现的AJAX 验证用户名是否存在 jQuery.ajax概述 HTTP 请求加载远程数据. 通过jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$.ajax() 返回其创建的 XMLHttpRequest对象.大多数情况下你无需直接操作该对象,但特殊情况下可用于手动终止请求. $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息.详细参数选项

Android实战简易教程-第二十三枪(基于Baas的用户注册验证用户名是否重复功能!)

接上一篇,添加验证用户名是否已经注册功能! 只需要修改MainActivity.java: package com.example.logintest; import java.util.List; import org.w3c.dom.UserDataHandler; import cn.bmob.v3.Bmob; import cn.bmob.v3.BmobQuery; import cn.bmob.v3.listener.FindListener; import cn.bmob.v3.li

ajax验证用户名和密码

1 var user = form.name.value; 2 var password = form.password.value; 3 var url = "chkname.php?user="+user+"&password="+password;//以前只知道ajax用于对用户名的检测,原来还可以对密码进行检测. 4 xmlhttp.open("GET",url,true); 5 xmlhttp.onreadystatechang

微信开发:微信服务器验证通过

申请自己的微信公众号部署后台服务器 代码解析 申请自己的微信公众号,部署后台服务器 公众号 SuperLishun,想要源码的可以关注公众号,给我留言. 百度微信公众号,首先要申请自己的微信公众号,我只申请了个订阅号,先把基本的调通,如下图 这里我们可以手动群发图文消息,设置自动回复消息,设置目录等等,但是作为开发者,我们要学着使用微信的API去做这些事情. 首先你需要有一个服务器,用来供微信调用,我这里用的是阿里云的服务器,作为测试1核2G内存就够了,1个月也就是100块钱,可以用来玩玩,如下