我写了一个注册 验证页面,但是不完全。
可以验证输入的信息是否正确,是否符合规定,但是不知道如何控制表单提交,也就是说,不管验证是否提示正确,它都会提交动作。
怎样才能让它再没有通过所有验证时不提交?
小弟才学jquery 望各位 前辈指点。
以下是代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'regist.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script src="./jquery/jquery-latest.js" type="text/javascript">
</script>
<script src="./jquery/jquery.validate.js" type="text/javascript"></script>
<script>
$(document).ready(function(){ $.validator.setDefaults({
submitHandler: function(form) {
form.submit();
}
});
///手机号码规范验证
jQuery.validator.addMethod("isMobile", function(value, element) {
var length = value.length;
var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;
return this.optional(element) || (length == 11 && mobile.test(value));
}, "请正确填写您的手机号码");
///主函数
$("#reg").validate({
rules:
{
username:"required",
email:{
required:true,
email:true
},
password:{
required:true,
minlength:5
},
confirm:{
required:true,
equalTo:"#password"
},
phone:{
required:true,
isMobile:true
},
homepage:{
required:true,
url:true
},
address:"required"
}
,
messages:
{
username:"不能为空",
email:{
required:"不能为空",
email:"请输入正确的email格式,如[email protected]"
},
password:{
required:"不能为空",
minlength:jQuery.format("密码不能少于{0}位")
},
confirm:{
required:true,
equalTo:"必须与密码一致"
},
phone:{
required:"不能为空",
isMobile:"正确的号码格式,如132...."
},
homepage:{
required:"不能为空",
url:"正确的url格式"
},
address:"不能为空"
}
});});
</script>
</head>
<body>
<fieldset>
<legend>注册</legend>
<form action="" method="post" id="reg">
<p><label for="username">username:</label><em>*</em>
<input type="text" size="25" name="username" id="username" datatype="s6-18" ajaxurl="valid.php" errormsg="昵称至少6个字符,最多18个字符">
</p>
<div class=""></div>
<p> <label for="password" >password:</label><em>*</em>
<input type="text" size="25" name="password" id="password">
</p>
<p> <label for="confirm" >password:</label><em>*</em>
<input type="text" size="25" name="confirm" id="confirm">
</p>
<p> <label for="email">email:</label>
<input type="text" size="25" name="email" id="email">
</p>
<p><label for="homepage">homepage:</label>
<input type="text" size="25" name="homepage" id="homepage">
</p>
<p><label for="phone">phone:</label>
<input type="text" size="25" name="phone" id="phone">
</p>
<p><label for="address">address:</label>
<input type="text" size="25" name="address" id="address">
</p>
<p></p>
<p><input type="submit" value="注册">
<input type="reset" value="重置">
</p>
</form>
</fieldset>
</body>
</html>
可以验证输入的信息是否正确,是否符合规定,但是不知道如何控制表单提交,也就是说,不管验证是否提示正确,它都会提交动作。
怎样才能让它再没有通过所有验证时不提交?
小弟才学jquery 望各位 前辈指点。
以下是代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'regist.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script src="./jquery/jquery-latest.js" type="text/javascript">
</script>
<script src="./jquery/jquery.validate.js" type="text/javascript"></script>
<script>
$(document).ready(function(){ $.validator.setDefaults({
submitHandler: function(form) {
form.submit();
}
});
///手机号码规范验证
jQuery.validator.addMethod("isMobile", function(value, element) {
var length = value.length;
var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;
return this.optional(element) || (length == 11 && mobile.test(value));
}, "请正确填写您的手机号码");
///主函数
$("#reg").validate({
rules:
{
username:"required",
email:{
required:true,
email:true
},
password:{
required:true,
minlength:5
},
confirm:{
required:true,
equalTo:"#password"
},
phone:{
required:true,
isMobile:true
},
homepage:{
required:true,
url:true
},
address:"required"
}
,
messages:
{
username:"不能为空",
email:{
required:"不能为空",
email:"请输入正确的email格式,如[email protected]"
},
password:{
required:"不能为空",
minlength:jQuery.format("密码不能少于{0}位")
},
confirm:{
required:true,
equalTo:"必须与密码一致"
},
phone:{
required:"不能为空",
isMobile:"正确的号码格式,如132...."
},
homepage:{
required:"不能为空",
url:"正确的url格式"
},
address:"不能为空"
}
});});
</script>
</head>
<body>
<fieldset>
<legend>注册</legend>
<form action="" method="post" id="reg">
<p><label for="username">username:</label><em>*</em>
<input type="text" size="25" name="username" id="username" datatype="s6-18" ajaxurl="valid.php" errormsg="昵称至少6个字符,最多18个字符">
</p>
<div class=""></div>
<p> <label for="password" >password:</label><em>*</em>
<input type="text" size="25" name="password" id="password">
</p>
<p> <label for="confirm" >password:</label><em>*</em>
<input type="text" size="25" name="confirm" id="confirm">
</p>
<p> <label for="email">email:</label>
<input type="text" size="25" name="email" id="email">
</p>
<p><label for="homepage">homepage:</label>
<input type="text" size="25" name="homepage" id="homepage">
</p>
<p><label for="phone">phone:</label>
<input type="text" size="25" name="phone" id="phone">
</p>
<p><label for="address">address:</label>
<input type="text" size="25" name="address" id="address">
</p>
<p></p>
<p><input type="submit" value="注册">
<input type="reset" value="重置">
</p>
</form>
</fieldset>
</body>
</html>
解决方案 »
- Asp, Javascript,response = null 什么意思
- 怎样用<table datasrc="#XmlDataSource"绑定深一层的Xml数据呢?
- 如何把从数据库中读取的内容作成.js文件?急用,谢谢了
- 如何通过javascript复制图片到剪贴板?高分求解决方案
- 2005年最后一问:firefox中怎么加载远程xml文件?
- 一个按钮,一个文本框,点击按钮后打开我的电脑对话框,当我选中一个文件打开后,文件路径显示到文本框中去
- 20多个Radio的显示问题
- 如何在jsp中调用js函数.请举一个简单的例子.
- jsp网页中提交表单
- 远程服务器文件压缩下载
- 请各位老师进来看一下,为什么会有这么奇怪的结果?
- js对象的内部方法使用apply后,如何在方法内访问自身对象
</form>
form表单有个onsubmit事件,控制表单提交
另外,onsubmit里面必须有return,function()必须返回false或true
<script src="script/jquery-1.6-min.js" type="text/javascript" ></script>
<script src="script/jquery.validate.js" type="text/javascript" ></script><FORM ID="loginfrm" METHOD="POST" ACTION="ServCheckLogin" >
<TABLE>
<TR>
<TD><label><CENTER>账号:</CENTER></label></TD>
<TD><input id="name" name="name" value="" type="text" /></TD>
<TD><span /></TD>
</TR>
<TR>
<TD><label><CENTER>密码:</CENTER></label></TD>
<TD><input id="password" name="password" value="" type="password" /></TD>
<TD><span /></TD>
</TR>
<TR>
<TD><label><CENTER>验证码:</CENTER></label></TD>
<TD><input id="imagecode" name="imagecode" value="" type="text" /></TD>
<TD><img /><span><label></label></span></TD>
</TR>
<TR>
<TD><center /></TD>
<TD><INPUT class="button" TYPE="submit" VALUE="登录"></TD>
<TD><INPUT class="button" TYPE="button" VALUE="注册"></TD>
</TR>
</TABLE>
____________________________________________________________________________
$("#loginfrm").validate({
// onkeyup:false,
event: "keyup",//按键弹起时验证
submitHandler:function(form){//验证后执行的动作
//点击登录时,改变按钮value为loading
var login = $(":submit[value='登录']")
login.val("Loading");
// .attr("disabled","disabled");
form.submit();
},
rules: {
name:{
required:true,
rangelength:[3,12]
},
password: {
required:true,
minlength:6
},
imagecode:{
required:true,
remote: {//发出ajax请求
url: "CheckImageCode?pn="+new Date().getTime(), //后台处理程序
type: "post", //数据发送方式
dataType: "json", //接受数据格式
data: { //要传递的数据
other: function(){
//如果需要传其他值,用other获取
return "";
}
}
}
}
},
messages: {
name:{required:"用户名不能为空!",
rangelength:jQuery.format("用户名位数必须在{0}到{1}字符之间!")},
password: {required:"密码不能为空!",
minlength:jQuery.format("密码位数必须大于等于6个字符!")},
imagecode:{
required:"验证码不能为空!",
"remote":"验证码错误!"
}
},
errorPlacement: function(error,element){
var span = element.parent().next().find("span");
error.appendTo($(span));
}
});
或者你直接试下 onsubmit="return false" 看下表单能不能提交就能确定是不是你的function问题了!