如何在jquery验证失败的情况下停止表单提交?

Rekkles_ 2015-07-02 03:32:04
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html>
<head>
<title> 注册</title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<style type="text/css">
#content{
width:370px;
height:300px;
margin-left:500px;
margin-top:200px;
padding-left:90px;
padding-top:20px;
background-color:#5cbdaa;
color:white;
}
#content p.pwd{
margin-left:15px;
}
#content p.pwdagain{
margin-left:-50px;
}
#content p.button{
margin-left:110px;
margin-top:30px;
}
#content p a{
font-size:12px;
float:right;
margin-right:50px;
color:white;
}
#content #submit{
width:60px;
height:40px;
background-color: #5cbdaa;
color:white;
border:1px solid white;
}
#content h2{
margin-left:113px;
}
</style>
<script src="jquery.min.js"></script>
<script type="text/javascript">
function check(){
var username = document.getElementById("username").value;
if(username=="")
{
document.getElementById("username1").innerHTML="用户不能为空";
}
else{
if(username.length >= 6&&username.length <= 18 )
{
$.ajax
({
type: "get",
url: "checkname.php",
data: "username="+username,
success:function(date)
{
if(date>0)
{
document.getElementById("username1").innerHTML="用户已存在";
}
else
{
document.getElementById("username1").innerHTML="可用";
}
}
})
}
else
{
;document.getElementById("username1").innerHTML="用户名在6-18位";
}
}
};
function password(){
var password=document.getElementById("pwd").value;

if(password=="")
{
document.getElementById("pwd1").innerHTML="密码不能为空";
}
else
{
if(password.length>=6 && password.length<=18)
{
document.getElementById("pwd1").innerHTML="√";
}
else
{
document.getElementById("pwd1").innerHTML="密码在6-18位字符";
}
}

};

function checkpassword(){
var pwdagain=document.getElementById("pwdagain").value;
var password=document.getElementById("pwd").value;
if(pwdagain=="")
{
document.getElementById("pwdagain1").innerHTML="请再次输入密码";
}
else
{

if(pwdagain.length>=6 && pwdagain.length<=18)
{
if(pwdagain == password)
{
document.getElementById("pwdagain1").innerHTML="√";
}
else
{
document.getElementById("pwdagain1").innerHTML="两次密码不同!";
}
}
else
{
document.getElementById("pwdagain1").innerHTML="密码在6-18位字符";
}

}
};

</script>
</head>

<body>
<div id="content">
<h2>注册</h2>
<form name="reg" method="POST" action="reg.php" >
<p>用户名:<input type="text" name="username" id="username" onblur=" check() "><span id="username1"></span></p>
<p class="pwd">密码:<input type="password" name="pwd" id="pwd" onblur="password()"><span id="pwd1"></span></p>
<p class="pwdagain">再次输入密码:<input type="password" name="pwdagain" id="pwdagain" onblur="checkpassword()"><span id="pwdagain1"></span></p>
<p class="button"> <input type="submit" id="submit" value="注册"></p>
<p><a href="login.html">已有账户,登录</a></p>
</form>
</div>
</body>
</html>
在密码错误或者用户名错误的情况下,点击注册按钮还是会提交下面的表单。如何阻止表单提交?
...全文
210 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
智商众筹 2015-07-02
  • 打赏
  • 举报
回复
引用 3 楼 Rekkles_ 的回复:
引用 2 楼 wander_wind 的回复:
用原生的js代码拦截submit,然后等待jquery的事情做完再继续
那我应该怎么写?
在form标签上加个onsubmit事件,绑定一个函数,在里面判断用户有没有进行过重名验证(验证过了的记录一个全局变量),如果没有,就写 return return false
Rekkles_ 2015-07-02
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
1、你虽然加载了 jquery,但并没有使用 jquery 的任何成分 2、因此你需要定义 onsubmit 事件处理程序,以控制表单的提交与否
我应该怎么写,新手求教。
Rekkles_ 2015-07-02
  • 打赏
  • 举报
回复
引用 2 楼 wander_wind 的回复:
用原生的js代码拦截submit,然后等待jquery的事情做完再继续
那我应该怎么写?
智商众筹 2015-07-02
  • 打赏
  • 举报
回复
用原生的js代码拦截submit,然后等待jquery的事情做完再继续
xuzuning 2015-07-02
  • 打赏
  • 举报
回复
1、你虽然加载了 jquery,但并没有使用 jquery 的任何成分 2、因此你需要定义 onsubmit 事件处理程序,以控制表单的提交与否
什么是SWFUpload?   SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。 [编辑本段]SWFUpload的主要特点   * 可以同时上传多个文件;   * 类似AJAX的无刷新上传;   * 可以显示上传进度;   * 良好的浏览器兼容性;   * 兼容其他JavaScript库 (例如:jQuery, Prototype等);   * 支持Flash 8和Flash 9;   SWFUpload不同于其他基于Flash构建的上传工具,它有着优雅的代码设计,开发者可以利用XHTML、CSS和JavaScript来随心所欲的定制它在浏览器下的外观;它还提供了一组简明的JavaScript事件,借助它们开发者可以方便的在文件上传过程中更新页面内容来营造各种动态效果。   在使用SWFUpload之前,请确认你具备一定的JavaScript和DOM知识。在实际开发中,大部分的错误都是由于错误的设置和低劣的Event Handlers处理程序所造成的。 [编辑本段]文档中文翻译   http://www.v-sky.com/doc/swfupload/v2.1.0/Documentation.html [编辑本段]效果演示   * Classic Form Demo http://demo.swfupload.org/formsdemo ;   * Features Demo http://demo.swfupload.org/featuresdemo ;   * Application Demo http://demo.swfupload.org/applicationdemo ;   * v1.0.2 Plugin Demo http://demo.swfupload.org/v102demo ; [编辑本段]选择合适的Flash控件   在发行包(SWFUpload v2)中含有2个版本的Flash控件(swfupload_f8.swf 与wfupload_f9.swf),其中第一个版本拥有最佳的兼容性,但是为此损失了部分功能;而第二个版本提供了一些附加的功能但是损失了兼容性。 [编辑本段]SWFUpload的初始化与配置   首先,在页面中引用SWFUpload.js ,如      然后,初始化SWFUpload ,如   var swfu;   window.onload = function () {   swfu = new SWFUpload({   upload_url : "http://www.swfupload.org/upload.php",   flash_url : "http://www.swfupload.org/swfupload_f9.swf", file_size_limit : "20480"   });   };   以下是一个标准的SWFUpload初始化设置所需的参数,你可以根据需要自己进行删减:   {   upload_url : "http://www.swfupload.org/upload.php", 处理上传请求的服务器端脚本URL   file_post_name : "Filedata", 是POST过去的$_FILES的数组名   post_params : {   "post_param_name_1" : "post_param_value_1",   "post_param_name_2" : "post_param_value_2",   "post_param_name_n" : "post_param_value_n"   },   file_types : "*.jpg;*.gif", 允许上传的文件类型   file_types_description: "Web Image Files", 文件类型描述   file_size_limit : "1024", 上传文件体积上限,单位MB   file_upload_limit : 10, 限定用户一次性最多上传多少个文件,在上传过程中,该数字会累加,如果设置为“0”,则表示没有限制   file_queue_limit : 2, 上传队列数量限制,该项通常不需设置,会根据file_upload_limit自动赋值   fl

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧