使用ASP.NET在客户端重置表单时出现问题

时间:2011-08-12 10:43:21

标签: asp.net clientscript

我正在尝试在客户端使用javascript重置我的表单。代码如下所示:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!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 type="text/javascript" >
        function Reset() {
            TextBox1.text = "";
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="Reset()" />
    </div>
    </form>
</body>
</html>

这当然不起作用,我得到了Button1未定的错误。我尝试在浏览器中查找控件的名称(通过查看页面源代码)并使用它来代替其ID,但这也不起作用。

2 个答案:

答案 0 :(得分:1)

您需要使用getElementById

获取值
var mybutton= document.getElementById('Button1');
mybutton.value = ""

答案 1 :(得分:1)

我建议您使用jQuery作为您的javascript代码。无论如何,这是一个标准。

在您引用jQuery之后,您可以按如下方式重写JavaScript:

<script type="text/javascript" >
    function resetForm() {
        $("#<%=TextBox1.ClientID %>").val("");
    }
</script>    

如果您仍然不想使用jQuery,那么您需要使用其客户端ID访问您的元素,如下所示:

<script type="text/javascript" >
    function resetForm() {
        document.getElemenyById("<%=TextBox1.ClientID %>").value = "";
    }
</script>    

另外,正如@Jon指出的那样,您需要将OnClientClick值重命名为resetForm()或重命名您的JavaScript函数。