【问题标题】:jquery to get radiobutton selectionjquery 获取单选按钮选择
【发布时间】:2012-12-15 21:21:47
【问题描述】:

我正在学习 jquery,但似乎无法从 asp.net 单选按钮列表中的单选按钮列表中找到所需的单选按钮的值。

这是标记;

 <fieldset style="width:50%;">
        <legend>Select one option below</legend>
        <div id="radioContactTasks">
            <asp:RadioButtonList ID="rblAddEditContact" runat="server"
                         RepeatDirection="Vertical" 
                         CssClass="registerradio" TextAlign="Left">
                <asp:ListItem Text="Add New Contact" />
                <asp:ListItem Text="Edit Existing Contact" />
                <asp:ListItem Text="Delete Existing Contact" />
            </asp:RadioButtonList>
        </div>
    </fieldset>

我尝试了各种方法,都没有奏效。这是最新的变化,只是提醒我选择了什么。

$(document).ready(function () {
        $("#rblAddEditContact").on("change", ":radio", function () {
            alert($(this).siblings("label").value);
        });
    });

这里是渲染的html

<fieldset style="width:45%;">
    <legend>Add New or Edit Exisiting Contacts</legend>
    <fieldset style="width:50%;">
        <legend>Select one option below</legend>
        <div id="radioContactTasks">
            <table id="MainContent_rblAddEditContact" class="registerradio">
<tr>
    <td><label for="MainContent_rblAddEditContact_0">Add New Contact</label><input id="MainContent_rblAddEditContact_0" type="radio" name="ctl00$MainContent$rblAddEditContact" value="Add New Contact" /></td>
</tr><tr>
    <td><label for="MainContent_rblAddEditContact_1">Edit Existing Contact</label><input id="MainContent_rblAddEditContact_1" type="radio" name="ctl00$MainContent$rblAddEditContact" value="Edit Existing Contact" /></td>
</tr><tr>
    <td><label for="MainContent_rblAddEditContact_2">Delete Existing Contact</label><input id="MainContent_rblAddEditContact_2" type="radio" name="ctl00$MainContent$rblAddEditContact" value="Delete Existing Contact" /></td>
</tr>

【问题讨论】:

  • 您似乎使用了特殊的 asp 标签...
  • 您需要遍历所有单选按钮并找到具有“已选中”属性的单选按钮,我稍后会整理出完整的答案。
  • 将渲染后的html浏览器源代码贴在这里。
  • 希望这篇文章对您有所帮助:stackoverflow.com/questions/308301/…
  • 另外,你的 .on 函数应该只是 $("#rblAddEditContact").on("change", function () { alert($(this).siblings("label").value ); 你不需要指定选择器

标签: jquery


【解决方案1】:

可能的解决方案是

$('input[type=radio]:checked').val();

或稍长但相同,应该也可以工作

$('input[type=radio]').filter(':checked').val();

只要你想得到它就可以了

【讨论】:

    【解决方案2】:

    如果你的radio 按钮有value 像这样

    <input type="radio" value="rdo-1" name="radio1" />
    

    那么你可以试试这个来获取rdo-1

    $("#radioContactTasks [type='radio']").on("change", function () {
        alert($(this).val()); // rdo-1
    });
    

    Example.

    否则,如果你的radio按钮是这样的,没有值属性

    <input type="radio" name="radio1" />
    

    然后我认为您不需要上面的代码,因为在命名组中只能选择一个 radio 按钮,它的值可以是 on 或 off,在这种情况下,处理程序内的 $(this) 是总是checked 一个,它的值将是on。

    Example.

    或者,如果您需要在 change 处理程序之外获取您的 radio 按钮的选中值,那么您可以使用它

    $("#radioContactTasks input[type='radio']:checked").val();
    

    Example.

    P/S:如果你现在还有疑惑,那么我建议你把浏览器渲染的源代码贴出来。

    【讨论】:

      【解决方案3】:
      $(document).ready(function () {    
          $('#MainContent_rblAddEditContact input[type=radio]').change(function(){
            alert( $(this).val() );
          });
      });
      

      现场演示:http://codepen.io/joe/pen/DJleG

      【讨论】:

      • 这不起作用。我编辑了我的原始帖子以包含呈现的 html
      猜你喜欢
      • 2015-03-28
      • 2011-07-17
      • 2013-09-28
      • 1970-01-01
      • 1970-01-01
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多