JSP页面内容:
<td align="right" class="bg_table02" >
<font color="red">*</font>手机:
</td>
<td class="bg_table02">
<html:text property="subMobile" size="20" styleClass="input" />
<input class=button01 name="captchaBtn" type="button"
value="获取验证码" onclick="getCaptcha()" />
</td>
JSP页面中的javascript代码:
var xmlhttp;
function operurl(){
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
function getCaptcha(){
if(isNumber(document.forms(0).subMobile.value)){
operurl(); xmlhttp.open("get","<%=request.getContextPath()%>/qualityOpinionCas.cas?functionCode=getCaptcha&subMobile="+document.forms(0).subMobile.value);
xmlhttp.onreadystatechange= function (){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
var res=xmlhttp.responseText;
if(res!=""){
document.forms(0).rcaptcha.value=res;
//按钮灰10秒
document.forms(0).captchaBtn.disabled=true;
setTimeout("document.forms(0).captchaBtn.disabled=false;",10000);
return;
}
}
}
};
xmlhttp.send();
}
}
Action中代码:
/**
* 获取验证码
*/
private ActionForward getCaptcha(BActionContext context)
throws BsiException {
HttpServletRequest request = context.getRequest();
HttpServletResponse response = context.getResponse();
String subMobile = request.getParameter("subMobile");
String captcha = get5Radom();//获取随机生成5位随机数
String content = "";
if (null != subMobile) {
String message = "您好,欢迎使用Ajax技术,验证码为:"+ captcha + "。您有任何疑问,欢迎拨打热线进行咨询";
try {
CpfzUtil.SMSExceues(subMobile, message); //调用一个接口,用于发送短信
content = captcha;
} catch (Exception e) {
e.printStackTrace();
}
}
try {
request.setCharacterEncoding("gbk");
response.setContentType("text/xml;charset=gbk");
} catch (UnsupportedEncodingException el) {
el.printStackTrace();
}
PrintWriter out;
try {
out = response.getWriter();
out.print(content);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
// 随机生成5位随机数
private String get5Radom() {
String newString = null;
// 得到0.0到1.0之间的数字,并扩大100000倍
double doubleP = Math.random() * 100000;
// 如果数据等于100000,则减少1
if (doubleP >= 100000) {
doubleP = 99999;
}
// 然后把这个数字转化为不包含小数点的整数
int tempString = (int) Math.ceil(doubleP);
// 转化为字符串
newString = "" + tempString;
// 把得到的数增加为固定长度,为5位
while (newString.length() < 5) {
newString = "0" + newString;
}
return newString;
}
详细解决方案
Ajax发送验证码范例
热度:117 发布时间:2012-11-25 11:44:31.0
相关解决方案
- 。各位大神,小弟有个简单的有关问题,就是小弟我用struts+ajax+juery+json时为何总是不进入action啊 配置文件如上
- ajax 多值 jsp 急
- ajax responsetext 替空值,想不通。
- springmvc jquery ajax 提交复杂对象,415异常解决办法
- jquery ajax select解决方法
- ajax Post 一直返回的是error ,为啥
- servlet+jquery1.4.2(ajax error?)解决方案
- 扭结,AJAX WEB UI库选型
- 求大神解决偏题 - jquery ajax
- ajax 拓扑图 实现,该如何解决
- ajax 怎么实现文件下载
- struts2+ajax+oracle实现目录树,该怎么解决
- 求个php+ajax+easyUI datagrid的简略完整的demo
- 验证用户名是否存在。Ajax+Action如何写了
- :前台和后台开发有啥区别?还有css、html、ajax、js、jquery都有什么区别
- 求章立民先生所著的书《APS.NET AJAX WEB应用开发秘诀(vb或者是c#)》所带的北风贸易数据库解决方案
- 求章破民先生所著的书《APS.NET AJAX WEB应用开发秘诀(vb或者是c#)》所带的北风贸易数据库
- 想学.net Ajax 求课程。
- MVC3 + jquery +ajax 来实现动态的下拉框,该怎么解决
- 求解一上。 纠结一天了。 ajax 如何把返回的list取出来
- ajax 中 innerHTML不能联系关系包含GridView的ASPX页面
- ajax 兑现局部刷新
- ajax VS2010工具箱不显示,该怎么处理
- AJAX 的TabContainer控件 嵌套 iframe 标签页 标签页面过长时自动顺应
- asp.net jquery ajax 取返回值并处理 .
- jquery ajax 为啥没执行.新手在线求解
- Ajax Control Toolkit 之 DropDownExtender <大侠请进,小侠勿扰>解决办法
- MVC ajax 下传图片有关问题
- AJAX UpdateProgress控件显示有关问题
- 各位大牛,如何把所有select的值存入数据库表中(用mvc,ajax),小弟新手