今天没事敲一个登陆demo时发现一个从未发现的问题:<a href="javascript:void(0)" onclick="submit();">登陆</a>
<input type="submit" value="登陆"/>都是提交表单,而且值都能提交成功到后台,让我想不通的是:String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
System.out.println(name+"___"+pwd);
if("admin".equals(name)&&"123456".equals(pwd)){
System.out.println(1);
response.sendRedirect("MyJsp.jsp");
System.out.println(2);
}else{
response.sendRedirect("MyJspError.jsp");
}为什么用submit()提交到后台后,再跳转页面无法跳转,
而用input按钮时又可以跳转页面,
怪哉...怪哉...怪哉...怪哉...怪哉...怪哉...jspservletrequestresponsejava

解决方案 »

  1.   

    不知道什么问题,后台没改,前台也不动,就是<a>标签提交,而且后台还能拿到表单的值,就是无法跳转
    而input就是可以
      

  2.   

    不知道你的onclick="submit();"里面怎么写的.....
      

  3.   

    我刚测试了下,是没有区别的啊
    <html>
    <title></title>
    <script type="text/javascript">
    function submit(){
    document.getElementById("form1").submit(); }</script><body>
    <form action="loginAction.action" method="post" id="form1">
    <input name="" value="1">
    <input type="submit">
    <a href="javascript:void(0)" onclick="submit();">登陆</a>
    </form>
    </body>
    </html>
      

  4.   

    submit()函数做了特殊处理,使用Ajax请求
      

  5.   

    你input都可以跳转,而a标签不可以应该是你js里的方法有问题
      

  6.   

    不知道什么问题,后台没改,前台也不动,就是<a>标签提交,而且后台还能拿到表单的值,就是无法跳转
    而input就是可以先把submit  js 函数贴出来;
    不要使用submit来作为函数名, 容易跟js内置函数冲突, 
      

  7.   

    如果submit()方法是用ajax进行的请求,那么是不能跳转的。如果用ajax进行请求,然后后台进行页面跳转,那么ajax返回的数据就是那个跳转页面的html字符串
      

  8.   

    不知道什么问题,后台没改,前台也不动,就是<a>标签提交,而且后台还能拿到表单的值,就是无法跳转
    而input就是可以先把submit  js 函数贴出来;
    不要使用submit来作为函数名, 容易跟js内置函数冲突, 

    这个才是关键,以前我就遇到过,楼主这样写<a href="javascript:void(0)" onclick="submit();">登陆</a>等于自定义了一个函数叫submit的,把js原有的内置函数submit重写了。
      

  9.   

    我根本就没有用js写submit这个函数,我的本意是onclick时,调用js内置函数submit提交,但是好像不行,应该要把dcoument.form加上,
    但是还是有点不明白,为什么数据可以提交到后台去
      

  10.   


    没写那个函数,本来是想调用内置函数的,不过调用错了,但不明白的是后台怎么拿到数据的
    建议要么在javascript函数中写一个form提交,要么就用submit按钮提交。提交效果是一样的。只不过js函数里面提交的话方式选择多一点,比如ajax提交。
      

  11.   


    没写那个函数,本来是想调用内置函数的,不过调用错了,但不明白的是后台怎么拿到数据的
    建议要么在javascript函数中写一个form提交,要么就用submit按钮提交。提交效果是一样的。只不过js函数里面提交的话方式选择多一点,比如ajax提交。
    这些我知道,现在只是疑问后台为什么拿到了数据,
    不执行跳转,而跳转的前一句和后一句都执行了的,就中间的跳转不执行.