2013-12-17 44 views
3

我在GridView中有一個單選按鈕。我想取消所有的asp.net單選按鈕,除了使用JQuery的當前選定的單選按鈕。我已經嘗試過但沒有結果..!如何使用JQuery取消選中GridView中的所有單選按鈕?

HTML標記:

<ItemTemplate> 
<asp:RadioButton ID="rdbUser" runat="server" kID='<%# Eval("kID")%>' class="rdbUser" /> 
</ItemTemplate> 

代碼:

$(document).on("click", ".rdbUser", function() { 
       var selectedRadio = $(this).attr('id'); 

       //var newrdo = $("input:radio.rdbUser:checked"); 
       //$(".rdbUser").prop('checked', false); 
       //$('#' + selectedRadio).prop('checked', true); 
       //$('input:radio[class=rdbUser]').prop('checked', false); 
//    $('.rdbUser').removeAttr('checked'); 

       var kID = $(this).attr('kID'); 
       $("#ctl00_ContentPlaceHolder1_hdnKioskID").val(kID); 

       alert("selected Radio : " + kID); 
      }); 

在SeeingMarkup在Chrome:

經過單選:

<span class="rdbUser" kid="2"><input id="ctl00_ContentPlaceHolder1_GridView1_ctl03_rdbUser" type="radio" name="ctl00$ContentPlaceHolder1$GridView1$ctl03$rdbUser" value="rdbUser"></span> 

未選中單選按鈕:

<span class="rdbUser" kid="21"><input id="ctl00_ContentPlaceHolder1_GridView1_ctl05_rdbUser" type="radio" name="ctl00$ContentPlaceHolder1$GridView1$ctl05$rdbUser" value="rdbUser"></span> 

回答

1

我認爲你應該使用RadioButton.GroupName屬性。

使用GroupName屬性指定一組單選按鈕來創建一組互斥的控件。當可用選項列表中只有一個選項可用時,可以使用GroupName屬性。

設置此屬性時,一次只能選擇指定組中的一個RadioButton。

但是你可以使用jQuery

$(document).on("click", ".rdbUser", function() { 
    //Check if this radio button is checked 
    if($(this).find("input[type=radio]").is(':checked')) 
    { 
     //Use .not() to exclude this 
     //Use .prop() to set checked to false 
     $(".rdbUser").not(this).find("input[type=radio]").prop("checked", false); 
    } 
}); 
2

試試這個試試這個代碼,

$(document).on("click", ".rdbUser", function() { 
    // to uncheck all radios which are not checked 
    $("input[type=radio].rdbUser").prop("checked", false); 
    $(this).prop('checked',true);// check the current one only 
}); 
+0

對不起@Rohan庫馬爾不工作..! :( –

1

使用change事件,而不是click

如果使用的jQuery版本> 1.6使用prop其他使用attr

$(".rdbUser").change(function(){ 
    if($(this).prop("checked")){ 
    $("[id^='rdbUser']").not(this).prop("checked",false); 
    } 
}); 
+0

這也不會工作..!:( –

0

希望這有助於! 'grdOrganization'是GridView的Id。

<script type="text/javascript"> 
     function ResetRadioBtns(rb) { 
      var gv = document.getElementById("<%=grdOrganization.ClientID%>"); 
      var rbs = gv.getElementsByTagName("input"); 
      var row = rb.parentNode.parentNode; 
      for (var i = 0; i < rbs.length; i++) { 
       if (rbs[i].type == "radio") { 
        if (rbs[i].checked && rbs[i] != rb) { 
         rbs[i].checked = false; 
         break; 
        } 
       } 
      } 
     }  

    </script> 

     <asp:TemplateField ItemStyle-HorizontalAlign="Left"> 
         <ItemTemplate> 
          <asp:RadioButton ID="rbtnMaster" runat="server" onclick="ResetRadioBtns(this)" /> 
         </ItemTemplate> 
        </asp:TemplateField> 
相關問題