2010-10-03 3 views
0
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Script2.aspx.cs" Inherits="Javascript.Script2" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<script language="javascript" type="text/javascript"> 
    function ClearValue(Text1, Text2) { 
     var txtClear1 = document.getElementById(Text1); 
     var txtClear2 = document.getElementById(Text2); 
     if (txtClear1 != null || txtClear2 != null) 
     { 
      txtClear1.outerText = ""; 
      txtClear1.value = ""; 
      txtClear1.innerText = ""; 
      txtClear1.innerHTML = ""; 
      txtClear1.outerHTML = "" 

      txtClear2.value = ""; 
      txtClear2.innerText = ""; 
      txtClear2.innerHTML = ""; 
      txtClear2.outerHTML = "" 

      return false; 
     } 
    } 
    </script> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Label ID="lblError1" runat="server" Text="Label1"></asp:Label> 
     <asp:Label ID="lblError2" runat="server" Text="Label2"></asp:Label> 
     <asp:Button ID="btnClose" runat="server" Text="Button" 
      onclick="btnClose_Click" /> 
    </div> 
    </form> 
</body> 
</html> 



namespace Javascript 
{ 
    public partial class Script2 : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

      btnClose.Attributes.Add("onclick", "ClearValue('" + lblError1.ClientID + "','" + lblError2.ClientID + "')"); 
     } 

     protected void btnClose_Click(object sender, EventArgs e) 
     { 

     } 
    } 
} 

здесь iam не удалось очистить текстовое значение метки.очистить текстовое значение этикеток

после того, как я нажал кнопку button.here, я запускаю функцию для очистки значений меток.

, но текст не очищается.

любая идея, как решить проблему.

спасибо.

+1

Как правило, когда у вас есть Язык A (.NET здесь), динамически выводящий язык B (здесь JavaScript), первым шагом при отладке должен быть анализ сгенерированного кода. Затем вы задаете вопрос: «Почему .NET выводит это вместо этого?» или «Почему этот JavaScript не работает?» - и это намного легче ответить (и позволяет намного больше людей отвечать, так как не требует знания обоих языков). – Quentin

+0

Обратите особое внимание на созданные идентификаторы и имена элементов управления. Например, возможно, Page_Load происходит слишком рано в жизненном цикле страницы для безопасного доступа к свойствам ClientID. Вместо этого вы можете попытаться добавить атрибут onclick во время фазы PreRender. –

ответ

0

Идентификатор элемента управления ASP.NET не совпадает с идентификатором ID в DOM. Идентификатор элемента HTML генерируется ASP.NET во время выполнения.

Вы можете указать DOM идентификатор, указав атрибут ClientID:

<asp:Label ID="lblError1" ClientID="lblError1" runat="server" Text="Label1"></asp:Label> 
0

кажется, что метки не подходят для этой цели. Ярлыки, измененные на стороне клиента, не сохраняют свои значения в PostBacks. использовать текстовое поле, а и сделать его похожим на этикетке, установив BorderWidth = 0

<asp:TextBox ID="lbl_error" BorderColor="White" BorderStyle="None" BorderWidth="0" runat="server" Width="99%"></asp:TextBox> 

затем в JavaScript написать эту функцию

function resetlabel() { 

      document.getElementById("<%=lbl_error.ClientID%>").value = ""; 
     } 
Смежные вопросы