jQuery处理ASP.NET RadioButtonList的客户端事件

时间:2013-09-10 19:33:50

标签: javascript jquery asp.net

我希望在使用jQuery事件处理程序更改ASP.Net RadioButtonList的选定值时运行一些Javascript代码;具体来说,我想在TextBox上启用/禁用RequiredFieldValidator(取决于RadioButtonList的选定值)。但是当我单击RadioButtonList中的一个项目(更改其值)时,没有任何事情发生。

这是Javascript代码:

var rbAuth = "<%= rbServiceHours.ClientID %>";
var vRespName = "<%= vRespNameReq.ClientID %>";
var vRespTitle = "<%= vRespTitleReq.ClientID %>";
var tbxRespName = "<%= tbxRespName.ClientID %>";
var tbxRespTitle = "<%= tbxRespTitle.ClientID %>";
$('#' + rbAuth + " > input").click(function () {
  if (($('#' + rbAuth).find('input:checked').val()) == 'Yes') {
    $('#' + vRespName).attr('enabled', 'true');
    $('#' + vRespTitle).attr('enabled', 'true');
    $('#' + tbxRespName).addClass("required");
    $('#' + tbxRespTitle).addClass("required");
  }
  else {
    $('#' + vRespName).attr('enabled', 'false');
    $('#' + vRespTitle).attr('enabled', 'false');
    $('#' + tbxRespName).removeClass("required");
    $('#' + tbxRespTitle).removeClass("required");
  }
});

当然,这是$(document).ready( function() {});

这里是相应的ASP.Net标记:

<asp:RadioButtonList ID="rbServiceHours" runat="server" RepeatDirection="Horizontal"
  CssClass="required" ValidationGroup="valIncident" TabIndex="31">
    <asp:ListItem Value="Y" Text="Yes"></asp:ListItem>
    <asp:ListItem Value="N" Text="No"></asp:ListItem>
</asp:RadioButtonList>

<asp:TextBox ID="tbxRespName" runat="server" MaxLength="50" TabIndex="29">
</asp:TextBox>
<asp:RequiredFieldValidator ID="vRespNameReq" runat="server" ErrorMessage="<br />Please enter the caregiver's name."
  CssClass="validationError" ControlToValidate="tbxRespName" ForeColor="White"
  BackColor="Red" SetFocusOnError="true" ValidationGroup="valIncident" 
  Display="Dynamic"></asp:RequiredFieldValidator>

<asp:TextBox ID="tbxRespTitle" runat="server" MaxLength="50" TabIndex="29">
</asp:TextBox>
<asp:RequiredFieldValidator ID="vRespTitleReq" runat="server" ErrorMessage="<br />Please enter the caregiver's title."
  CssClass="validationError" ControlToValidate="tbxRespTitle" ForeColor="White"
  BackColor="Red" SetFocusOnError="true" ValidationGroup="valIncident" Display="Dynamic"></asp:RequiredFieldValidator>

有人能指出我正确的方向吗?谢谢!

编辑:这是呈现的HTML:

<input name="ctl00$MainContent$tbxRespName" type="text" maxlength="50" 
  id="ctl00_MainContent_tbxRespName" tabindex="29" />
<span id="ctl00_MainContent_vRespNameReq" class="validationError" 
  style="color:White;background-color:Red;display:none;"><br />Please enter the 
  caregiver's name.</span>
<input name="ctl00$MainContent$tbxRespTitle" type="text" maxlength="50" 
  id="ctl00_MainContent_tbxRespTitle" tabindex="30" /><br />
<span id="ctl00_MainContent_vRespTitleReq" class="validationError" 
  style="color:White;background-color:Red;display:none;"><br />Please enter the 
  caregiver's title.</span>

1 个答案:

答案 0 :(得分:2)

根据my comment ...

问题是您正在检查.val() == "Yes",但您的RadioButtonList项目已Value="Y"