2015-01-21 5 views
0

Существует ListBox1 с ListItem:Тестирование выбранного жерех Listbox элемент с Javascript

<asp:ListItem Value="No.1">No.1</asp:listitem> 

И есть метка для испытания

<asp:Label ID="lblLabel" runat="server" Text="Label1" ></asp:Label> 

Теперь я пытаюсь проверить с Javascript (JQuery) выбирается ли список № 1, когда список остается на вкладке или вводится, и это не работает. Что может быть неправильным с этим кодом javascript (jQuery)?

$("#ListBox1").focusout(function() { 
    if ($("#ListBox1").SelectedItem.Text === "No.1") { 
     // tried also if ($("#ListBox1").val() === "No.1") { 
     $("#lblLabel").Text = $("#ListBox1").SelectedItem.Text; 
    } 
}); 

ответ

0

Это связано с jQuery и использованием события focusout, поэтому список остается прокручиваемым клавишами прокрутки.

$('#ListBox1').focusout(function() { 
      var data = $(this).val(); 
      if (data == "No.1") { 
       //alert(data); 
       $('#myModal').modal('toggle'); 
      } 
      $("#ListBox1").focus(); 
     }); 
0

Самая большая проблема заключается в том, что ASP.NET Form Control Ids на стороне сервера визуализируются как нечто совершенно иное на клиенте. Вы можете сделать это:

$("#<%=ListBox1.ClientID%>").focusout(function() { ... }); 

По-моему, это очень уродливо, поэтому я предпочитаю использовать классы вместо этого. Вы определяете свой тег управления следующим образом:

<asp:Label ID="lblLabel" CssClass="obj_lblLabel" runat="server" Text="Label1" ></asp:Label> 

Это позволит вам определить свой контроль на стороне клиента с помощью селектора класса:

$(".obj_lblLabel").focusout(function() { ... }); 

Вам не обязательно нужно префикс obj_ но это что я использую лично для обозначения того, что класс не используется для целей стилизации.

Кроме того, jQuery имеет событие change(), которое было бы более подходящим для использования, чем focusout().

И, наконец, вам следует избегать активных форм ASP.Net Forms. Это парадигма, из-за которой отрасль быстро уходит. ASP.Net MVC намного проще работать, и даже лучше его можно включить в ваш существующий проект. См. Здесь: ASP.Net MVC alongside Web Forms

+0

Для этого я использую ClientIDMode = "Static" в ListBox1 и просто добавил его в lblLabel, но без результата. И ваше решение не работает, и оно работает. Наверное, это заявление if .. – Hank

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