日期:2014-05-16  浏览次数:20397 次

JS怎么做到让表单提交时不跳转!还有怎么设置跳转不可用呢?
提交的时候有先要做一些事情,等到这些事情完成之后才跳转!

就像CSDN 发帖 跟登陆 那样的效果!

------解决方案--------------------
用submit按钮提交可以为表单注册onsubmit事件,进行验证等操作,返回return false;来阻止表单提交。
return true;进行表单提交。
用button按钮onclick事件提交表单可以在单击事件中进行验证等操作,如果需要提交表单就用form.submit()进行提交就行了。否则就不提交表单。
也可以用ajax提交。根据返回值判断是否跳转。
------解决方案--------------------
我这个例子没有在新弹出层或者新弹出页面显示登录框,这里做个例子在本页显示,实际应用的时候应该改成更适合的形式
HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>    
</head>
<body>
<script type="text/javascript" src="jquery-1.6.4.min.js" ></script> 
 <form id="form1" action="savenote.asp" method="post" onsubmit="return checklogin();" >
 <textarea rows="10" cols="100" name="note" ></textarea>
 <input type="submit" value="保存发言" />
 </form>
 <script type="text/javascript" >
     function checklogin() {
         jQuery.ajax({
             url: 'checklogin.asp?' + Math.random(),
             success: function(result) {
                 alert(result);
                 if (result == "1") {
                     alert("你已经登录,可以继续提交");
                     document.getElementById("form1").submit();
                 } else {
                     alert("你没有登录,请登录");
                     $("#login").show();
                 }
             },
             async: false
         });
         return false;
     }
 </script>
 <div id="login" style="display:none;">
 用户名<input />
 密码:<input />
 <input type="button" value="登录" />
 </div>
</body>
</html>