2010-12-10 4 views
0

2つのチェックボックスがあるグリッドがあります。私が1つをチェックすると、もう1つはチェックされないようにします。これはJQueryで行うことができますが、私はどのように明確ではありません。 この作業をするには、チェックボックスがクリックされた場所の行インデックスを知る必要があります。 エディタテンプレートは次のようになります。MVC:EditorTemplateのJQuery onchangeイベント

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<SHP.WebUI.Models.RequestInfo>" %> 

     <tr> 
      <td style="width:100px"> 
       <%: string.Format("{0} {1}", Model.Forename, Model.Surname) %> 
      </td> 
      <td style="width:125px"> 
       <%: String.Format("{0:ddd, MMM d, yyyy}", Model.RequestDate) %> 
      </td> 
      <td style="width:70px"> 
       <%: Model.Type %> 
      </td> 
      <td style="width:125px"> 
       <%: String.Format("{0:ddd, MMM d, yyyy}", Model.AnnualLeaveDate) %> 
      </td> 
      <td style="width:60px"> 
       <%: Html.CheckBoxFor(model => model.ApproveFlag) %> 
      </td> 
      <td style="width:55px"> 
       <%: Html.CheckBoxFor(model => model.RejectFlag) %> 
      </td> 
      <td style="width:230px"> 
       <%: Html.TextAreaFor(model => model.Reason) %> 
      </td> 
     </tr> 

ページソースは(最初の2行が多い)ように見えます。のidと要素の名前のforのインデックスを見ることができます。

<table class="StripeGrid"> 


    <tr> 
     <td style="width:100px"> 
      xaviar caviar 
     </td> 
     <td style="width:125px"> 

      Mon, Nov 29, 2010 
     </td> 
     <td style="width:70px"> 
      Request 
     </td> 
     <td style="width:125px"> 
      Mon, Feb 1, 2010 
     </td> 
     <td style="width:60px"> 
      <input id="RequestList_0__ApproveFlag" name="RequestList[0].ApproveFlag" type="checkbox" value="true" /><input name="RequestList[0].ApproveFlag" type="hidden" value="false" /> 

     </td> 
     <td style="width:55px"> 
      <input id="RequestList_0__RejectFlag" name="RequestList[0].RejectFlag" type="checkbox" value="true" /><input name="RequestList[0].RejectFlag" type="hidden" value="false" /> 
     </td> 
     <td style="width:230px"> 
      <textarea cols="20" id="RequestList_0__Reason" name="RequestList[0].Reason" rows="2">&#13;&#10;</textarea> 
     </td> 
    </tr> 

    <tr> 
     <td style="width:100px"> 
      xaviar caviar 
     </td> 
     <td style="width:125px"> 
      Wed, Dec 8, 2010 
     </td> 
     <td style="width:70px"> 
      Request 
     </td> 

     <td style="width:125px"> 
      Tue, Nov 2, 2010 
     </td> 
     <td style="width:60px"> 
      <input id="RequestList_1__ApproveFlag" name="RequestList[1].ApproveFlag" type="checkbox" value="true" /><input name="RequestList[1].ApproveFlag" type="hidden" value="false" /> 
     </td> 
     <td style="width:55px"> 
      <input id="RequestList_1__RejectFlag" name="RequestList[1].RejectFlag" type="checkbox" value="true" /><input name="RequestList[1].RejectFlag" type="hidden" value="false" /> 
     </td> 

     <td style="width:230px"> 
      <textarea cols="20" id="RequestList_1__Reason" name="RequestList[1].Reason" rows="2">&#13;&#10;</textarea> 
     </td> 
    </tr> 

。 。 。

答えて

2

このイベントは、テーブル内のすべてのチェックボックスにバインドする必要があります。チェックボックスをクリックすると、最も近いtrを見つけて、クリックされたチェックボックス以外のチェックボックスを探してチェックを外します。言った...多分あなただけ

+0

はい、作品のラジオボタンを使用する必要があります

$(".StripeGrid tr input:checkbox").click(function(){ $(this).closest("tr").find("input:checkbox:not(#" + $(this).attr("id") + ")").attr("checked", false); }); 

。どうもありがとうございました! – arame3333

関連する問題