我有一个 asp:textbox
<asp:textbox ID="NewName" runat="server" />
当用户单击“取消”按钮时,我想通过将值设为“”来擦除该文本框中的任何内容。如果它是文本类型的输入字段,我可以在 javascript 中执行此操作:
document.getElementById('NewName').value= "";
但我不能这样做,因为它是一个 asp:textbox。
我有一个 asp:textbox
<asp:textbox ID="NewName" runat="server" />
当用户单击“取消”按钮时,我想通过将值设为“”来擦除该文本框中的任何内容。如果它是文本类型的输入字段,我可以在 javascript 中执行此操作:
document.getElementById('NewName').value= "";
但我不能这样做,因为它是一个 asp:textbox。
当您的 asp:textbox 呈现到 UI 时,是的,它只是一个文本类型的输入字段。唯一可能有问题的部分是 ID,但可以使用 ClientIDMode 设置:
<asp:textbox ID="NewName" runat="server" ClientIDMode="Static" />
呈现为:
<input type="text" id="NewName" />
因此,您使用的 JavaScript 应该可以完美运行。
<asp:TextBox>
渲染为<input type="text">
您可以随意使用的,唯一的复杂之处是id=""
属性被重写,但您可以这样做:
document.getElementById("<%= NewName.ClientID %>").value = "";
假设此脚本与文本框位于同一页面中。如果这是在引用中,<script src="">
那么您需要使用元素 ID 的全局脚本变量。
尝试将文本框的 ClientIDMode 设置为静态
这样,javascript 应该能够使用与 ASPX 中相同的 ID 找到它们。
这是一个完整的测试页面
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script type="text/javascript">
function ClearTB1() {
document.getElementById("TextBox1").value="";
}
</script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<p>
<asp:TextBox ID="TextBox1" runat="server" Text="test" ClientIDMode="Static"></asp:TextBox><br />
<asp:TextBox ID="TextBox2" runat="server" Text="test" ClientIDMode="Static"></asp:TextBox><br>
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="ClearTB1()"
CausesValidation="False" UseSubmitBehavior="False" /><br />
</p>
</asp:Content>
我有同样的问题。一旦我想起在 Ids 上的 asp.net 发生了混乱,我就解决了它。
在我的 aspx 中,我有:
<input type="text" id="sessSubs"/>
再往下,在gridview中(因此使用“class”而不是“id”),我有一列有一个asp:TextBox:
<asp:TextBox runat="server" class="paid" />
一旦我回忆起 id mangling 问题,这只是改变我引用文本框的方式的一个例子:
<script type="text/javascript">
$(document).ready(function() {
function updateSubs()
{
var sub = parseFloat($('[id$=sessSubs]').val());
$('.paid').val(sub);
}
$(document).on('change, keyup', '[id$=sessSubs]', updateSubs);
});
</script>