1. form 的 onsubmit 的事件
当onsubmit对应函数return false时,form表单不会提交。
以实例讲解onsubmit:
<script language="javascript">
function submit(){
alert("111");
}
return false;
</script>
<form action="..." method="post" onsubmit=" submit()">
...
</form>
当点击button时,会弹出提示框‘111’,但表单仍会提交到服务器。
若改成 <form action="..." method="post" onsubmit=" return submit()">
,表单不会提交。
2. 使用Ajax提交表单,而不用form自带的submit,有以下两种方法
- onsubmit = “return false”, 阻止表单提交,使用onclick绑定js函数
<script type="text/javascript">
function login() {
$.ajax({
//几个参数需要注意一下
type: "POST",//方法类型
dataType: "json",//预期服务器返回的数据类型
url: "/users/login" ,//url
data: $('#form1').serialize(),
success: function (result) {
console.log(result);//打印服务端返回的数据(调试用)
if (result.resultCode == 200) {
alert("SUCCESS");
}
;
},
error : function() {
alert("异常!");
}
});
}
</script>
<form id="form1" onsubmit="return false" action="##" method="post">
...
<p><input type="button" value="登录" onclick="login()"></p>
</form>
- async:false
<script type="text/javascript">
function login() {
$.ajax({
async:false, 要设置为同步的,要不CheckUserName的返回值永远为false
url: "${ctx}/register/registeremail.do",
type: "Post",
data: {"email" : email},
success: function(transport){
if(transport==0){
var html;
document.getElementById("em").style.display="inline";
html="<font color=010203>恭喜您,该邮箱可以注册!</font>";
$("#em").html(html);
clearError(frm["email"]);
flag=true;
}else{
addErrors(frm["email"],"对不起!该邮箱已经注册!");
document.getElementById("em").style.display="none";
flag=true;
}
}
});
// alert(flag + "...邮箱...");
if(flag){
return false;
}
}
</script>
<form id="form1" onsubmit="return login()" action="##" method="post">
...
</form>