//AJAX验证身份证号,为了减少访问数据量用JAVASCRIPT先进行验证
1、 页面在身份证号(trainUser.cardNo)加οnblur="check"即可;
2、 javascript中间写入:
/*************************************javascript开始********************************************************/
function showResponse(originalRequest){
Element.hide($('load'));//用设定它的 style.display 为 'none'来隐藏每个传入的元素。
var getmsgstr=originalRequest.responseText;
if(getmsgstr!=""&&getmsgstr==1)
{
alert("你输入的身份证号不存在"); //弹出服务器端的msgStr字符串
Field.focus($('trainUser.cardNo')); //移动焦点到给定的表单项目。
}else if(getmsgstr!=""&&getmsgstr==2)
{
var selectSale=window.confirm ("请选择销售区分:点确定选择挖掘机,点取消选择装载机");
if(selectSale){
$("trainUser.saleDistinction").value=21;
} else{
$("trainUser.saleDistinction").value=22;
}
}
}
function showDiv(){
Element.show($('load'));//用设定它的 style.display 为 ''来显示每个传入的元素。
}
//身份验证
function check(){
var pars=Form.Element.serialize($('trainuser.cardNo'));
var url='/webadmin/login/checkCardNo.action'; //返回元素的 名称=值 对, 如 'elementName=elementValue'
if($F('trainuser.cardNo')==""){
alert("请输入身份证号!");
return false;
}else if(isIdCard()==false){
Field.focus($('trainUser.cardNo'));
return false;
}
else{
var myAjax = new Ajax.Request(
url,{method:'get',
parameters:pars,
onLoading:showDiv,
onComplete:showResponse,
onFailure:reportError});//构造函数,见讲解
}
}
function reportError(){
alert('验证失败,请重试!');
}
/**验证身份证号*/
function isIdCard()
{ var card=$("trainUser.cardNo").value;
var cardLen;
var cardDate;
var chkSex;
cardLen=card.length;
//长度
if (cardLen!=15 && cardLen!=18)
{
alert("身份证号码长度错误");
return false;
}
//验证是否为数字
if (isNaN(card.substring(0,cardLen-1)))
{
alert("请输入正确身份证号码!");
return false;
}
else
{
chkSex=card.charAt(cardLen-1);
}
//取生日
if (18==cardLen)
{
cardDate=card.substring(6,14);
}
else
{
cardDate=card.substring(6,12);
}
//判断最后一位
if (cardLen==15)
{
if (isNaN(chkSex))
{
alert("请输入正确身份证号码!");
return false;
}
}
else
{
if (isNaN(chkSex))
{
if (chkSex!="x" && chkSex!="X")
{
alert("请输入正确身份证号码!");
return false;
}
}
}
return true;
}
/***********************javascript结束**************************************************/
Struts.xml配置action
/**********************************************************/
<!--验证身份证号-->
<action name="checkCardNo"
class="com.jerehnet.trainExam.basic.web.action.TrainUserAction"
method="checkCardNo">
</action>
/**********************************************************/
Action中的方法
/**********************************************************/
public void checkCardNo() {
HttpServletResponse response = ServletActionContext.getResponse(); //取response对象
HttpServletRequest request = ServletActionContext.getRequest();//取request对象
//serverce层写的验证身份证号是否存在方法
int cardInfo = trainUserService.cardInfo(request, trainUser);
//服务器响应
response.setContentType("text/xml;charset=utf-8");
response.setHeader("Cache-Control","no-cache");
String msgStr="";
if(cardInfo==1){
msgStr ="1";
}
else if(cardInfo==2){
msgStr ="2";
}
try{//response写信息
response.getWriter().print(msgStr);
response.getWriter().close();
}catch(Exception e){
e.printStackTrace();
}
}
/**********************************************************/