2012-03-09 4 views
1

У меня есть код asp.net:Как добавить событие jquery onclick в asp radiobutton?

<asp:RadioButton ID="RadioButton1" CssClass="rb1" GroupName="grp1" runat="server" /> 
<br/> 
<asp:RadioButton ID="RadioButton2" CssClass="rb2" GroupName="grp1" runat="server" /> 
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 

В браузере это выглядит следующим образом:

<span class="rb1"> 
<input id="MainContent_RadioButton1" type="radio" value="RadioButton1" name="ctl00$MainContent$grp1"> 
</span> 
<br> 
<span class="rb2"> 
<input id="MainContent_RadioButton2" type="radio" value="RadioButton2" name="ctl00$MainContent$grp1"> 
</span> 
<input id="MainContent_TextBox1" type="text" name="ctl00$MainContent$TextBox1"> 

Как добавить "OnClick" событие RadioButton1, так что это будет ясно textBox1 при нажатии?

Я пытаюсь сделать это:

<script type="text/javascript" language="javascript"> 
    $("input rb1").click(function() { 
     alert('1'); 
    }); 
</script> 

Он ничего не делает.

+0

Убедитесь, что вы в том числе Библиотека jQuery. – orolo

ответ

0
$('#mainContent_RadioButton1').click(function() { 

или

$('.rb1 input').click(function() { 
+0

В конце концов это будет в другом приложении, поэтому «mainContent» будет автоматически заменено чем-то другим. Могу ли я использовать cssClass для добавления события onClick? –

+0

да, см. Редактирование. класс обозначается w/«.». – orolo

+1

@ user671729 Остерегайтесь того, что обработчик будет запущен, если вы используете тот же класс css для другого переключателя. –

3

Вы можете установить атрибут ClientIDMode к статичным на жереха флажком и управления текстового поля и использование JQuery, чтобы зарегистрировать событие щелчка и пустое значение текстового поля в.

<asp:RadioButton ID="RadioButton1" CssClass="rb1" GroupName="grp1" runat="server" ClientIDMode="Static"/> 

<asp:TextBox ID="TextBox1" runat="server" ClientIDMode="Static"/> 

<script type="text/javascript"> 
$(function(){ 
    $("input#RadioButton1").click(function(){ 
     $("input#TextBox1").text(""); 
    }); 
}); 
</script> 
+0

Я поставил скрипт в верхней части страницы asp.net, поэтому элементы еще не были отображены. Можно исправить $ (document) .ready или поместив скрипт в нижней части страницы ' ' –

+0

Мой пример - это ярлык для готового документа, он должен работать нормально. –

2

вам не хватает . селектор класса требует точка как .rb1

<script type="text/javascript"> 
    $("input .rb1").click(function() { 
     alert('1'); 
    }); 
</script> 

после @SKS отметил, с любопытством :p, $("input .rb1") означает смотреть для элемента (ов) с class=rb1 внутри (читай детей) в input элемент, который не имеет смысла вам нужно использовать селектор $("input.rb1") как

<script type="text/javascript"> 
    $("input.rb1").click(function() { 
     alert('1'); 
    }); 
</script> 

, который будет выбрать элемент (ы) с class=rb1

+0

Мне любопытно узнать, что означает «вход .rb1». Btw, .rb1 является оберткой вокруг ввода. –

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