很简单的一段代码如下:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ChangeType1.aspx.cs" Inherits="ChangeType1" %><!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>
</head>
<body>
    <form name="form1">
    <div>
    <input type="submit" name="t1"/>
    </div>
    </form>
    <script type="text/javascript">
    alert(form1.t1.value);
    </script>
</body>
</html>当为form添加runat="server"属性时根本取不到值,而不加此属性时可以取到。这是为什么?

解决方案 »

  1.   

    IE7测试没有问题,加了ruant="server"也能取到啊
      

  2.   

    呵呵 你在后台取值的话 当然要加上 ruant=server啊  因为 这个标示表示服务器端的 。
      

  3.   

    等页面load完了再试试
    window.onload = function()
    {
     alert(form1.t1.value);
    }
      

  4.   

    谢谢楼上各位解答,我是菜鸟,大家见笑了……回复1楼,我用的版本是IE8,会出现这个问题回复2楼,我知道runat="server"的含义,可是这和题目无关啊回复3楼,您的方法不可行回复4楼,我这不是在服务端取客户端的值啊,是在客户端取的啊请高人给个意见,菜鸟感激不尽……
      

  5.   


    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!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>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <input type="submit" name="t1" />
        </div>
    <script type="text/javascript">
              alert(form1.t1.value);
      </script>
        </form>
    </body>
    </html>不管有没有runat="server" 都成功 ie8 ,vs2010
    最后说明你不成功提示什么!
      

  6.   

    谢谢6楼,因为我用的是form的name所以取不到,您直接用的id。
    id和name这两个东西总是弄得我很抓狂