0

Восстановлена ​​моя проблема в очень простой форме с TextBox1, Button1 и Label1. Я использую «валидацию» (клиентскую сторону) на TextBox1, поэтому, если она пуста, отображается сообщение.Очистить ярлык кнопкой в ​​форме с подтверждением

В коде позади (на стороне сервера) установлен Label1.

Я использую javascript для очистки Label1, но это не сработает.

<head runat="server"><title></title> 
    <script type="text/javascript"> 
     function ClearLabel() { $('#Label1').val(""); } 
    </script> 
</head> 
<body><form id="form1" runat="server"> 
     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
      <asp:RequiredFieldValidator ID="RFV_1" runat="server" 
       ErrorMessage="pls enter value" Text="*" ControlToValidate="TextBox1"> 
      </asp:RequiredFieldValidator> 
     <asp:Label ID="Label1" runat="server"></asp:Label> 
     <asp:Button ID="Button1" runat="server" Text="Save" 
      OnClientClick="ClearLabel()" 
      OnClick="Button1_Click" /> 
     <asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode="List" /> 
</form></body></html> 

код позади:

protected void Button1_Click(object sender, EventArgs e) 
    {if (Page.IsValid) 
     {Label1.Text = ("value is : " + TextBox1.Text);}} 

Javascript для очистки Label1 не уволили или не работает.
Где я ошибаюсь ...?

+1

не '$ ('# Label1'). Val (" ");'. просто попробуйте этот '$ ('# Label1'). text (" ")' –

+0

Попробуйте просмотреть сгенерированный HTML на веб-странице, и вы заметите, что элемент управления ярлыками имеет другое имя для того, что вы вначале pt. Сначала вам необходимо зарегистрировать свой сегмент JavaScript, чтобы он мог получить доступ к предоставленному контенту ASP.NET. [Имейте это в виду] (https://msdn.microsoft.com/en-us/library/aa479011.aspx). – Paul

+0

Я не тестировал этот код. Проверь это. http://stackoverflow.com/questions/1692856/how-to-clear-an-label-value-in-javascript. –

ответ

1

Замените ваш код с $('#Label1').val(""); на $('#Label1').text(""). Set Label Text with JQuery.

EDIT:

Или, вы можете использовать этот document.getElementById("#Label1").innerHTML=''; вместо $('#Label1').text("") (JQuery код)

+0

Это не обязательно работает должным образом. На самом деле, я бы заподозрил, что он потерпит неудачу из-за элементов управления ASP.NET с разными именами. См. Мой комментарий в вопросе OP. – Paul

0

Вот как я ее решил -
В коде позади я добавил «еще» заявление:

protected void Button1_Click(object sender, EventArgs e) 
    { 
     if (Page.IsValid) 
     { 
      Label1.Text = ("value is : " + TextBox1.Text); 
     } 
     else 
     { 
      Label1.Text = ""; 
     } 
    } 

В моем HTML я полностью удалил JavaScript, но я до сих пор nedded материал OnClientClick с фиктивной функции, как это:

<head runat="server"> 
    <title></title> 
</head> 
<body> 
<form id="form1" runat="server"> 
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
    <asp:RequiredFieldValidator ID="RFV_1" runat="server" 
     ErrorMessage="pls enter value" Text="*" ControlToValidate="TextBox1"> 
    </asp:RequiredFieldValidator> 
    <asp:Label ID="Label1" runat="server"></asp:Label> 
    <asp:Button ID="Button1" runat="server" Text="Save" 
     OnClientClick="blablabla" 
     OnClick="Button1_Click" /> 
    <asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode="List" /> 
</form> 
</body> 

Обратите внимание на имя несуществующего фиктивной функции, которую он называет, без которой он не будет работать:

OnClientClick="blablabla" 

Он отлично работает, как и ожидалось, хотя я не имею понятия, как он делает это. Поэтому я нашел несколько уроков и проведу следующие пару дней, чтобы узнать javascrit.
Спасибо всем!
Gadi

Смежные вопросы