none
普通button在form内无法执行js页面跳转 RRS feed

  • 问题

  • 啥也不描述了,直接上代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="Test" %> <!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 runat="server"> <title></title> <script language="javascript" type="text/javascript" src="/Scripts/jquery-1.4.1.min.js"></script> <script type="text/javascript"> $(document).ready(function () { $("#Button1").click(function () { location.href = "/Default.aspx"; }); $("#Button2").click(function () { location.href = "/Default.aspx"; }); }); </script> </head> <body> <button id="Button1">Button1</button> <form id="form1" runat="server"> <div> <button id="Button2">Button2</button> </div> </form> </body> </html>

    以上,点击Button1能成功跳转到Default.aspx;点击Button2不跳转。两个事件处理中添加alert("123")后再次运行,均能出现“123”消息框,但是Button2依然无法跳转。

    请问,这是什么原因导致?不改变页面结构和控件类型的情况下,怎么才能让Button2也能执行跳转?


    QQ: 79965521 Email: WolfLai@126.com

    2015年2月1日 4:48

答案

  • Deleted
    • 已标记为答案 Wolf Lai 2015年2月4日 13:01
    2015年2月1日 6:40
  • 您好,

    问题就在于第二个Button是在form里面的,你点击了第一个button,页面并没有提交。

    而当你点击了第二个Button,实际上它是提交了整个表单,页面就行了刷新,所以它不会跳转到Default的页面。

    你可以在Test.aspx.cs页面page_load 方法那设置断点,检查下,点击两个Button是,页面是否会回传

    • 已标记为答案 Wolf Lai 2015年2月4日 13:02
    2015年2月2日 2:28
  • Deleted
    • 已标记为答案 Wolf Lai 2015年2月4日 13:02
    2015年2月2日 3:18

全部回复

  • 您好,

    问题就在于第二个Button是在form里面的,你点击了第一个button,页面并没有提交。

    而当你点击了第二个Button,实际上它是提交了整个表单,页面就行了刷新,所以它不会跳转到Default的页面。

    你可以在Test.aspx.cs页面page_load 方法那设置断点,检查下,点击两个Button是,页面是否会回传

    • 已标记为答案 Wolf Lai 2015年2月4日 13:02
    2015年2月2日 2:28