2012-09-26 196 views
2

我正在使用jQuery。如何在複選框選中時啓用或禁用表格內的文本框。 這是我的edit.cshtml。啓用禁用複選框選中時的文本框

<table id="scDetails" class="dataTable"> 
      <thead> 
       <tr> 
        <th>RItem</th> 
        <th>IChecked</th> 
        <th>Notes</th> 
       </tr> 
      </thead> 
      <tbody> 
       @foreach (var fback in Model.Fbacks) 
       { 
        <tr> 
         <td @Html.DisplayFor(m => fback.RItem)</td> 
         <td>@Html.CheckBoxFor(m => fback.IChecked)</td> 
         <td>@Html.TextBoxFor(m => fback.Notes)</td> 
        </tr> 
       } 
      </tbody> 
     </table> 

我曾嘗試是:

$('td :checkbox').change(function() { 
      var parentTx = $(this).closest('tr').find(input[type = "text"]); 
      if (this.checked) { 
       parentTx.attr("disabled",false); 
      } else { 
       parentTx.attr("disabled", true); 
      } 
     }); 

哪裏做錯了嗎?我不想在控件上使用任何類來實現此目的。

回答

6

你錯過了引號,你可以簡單地你的代碼:

$('td input[type="checkbox"]').change(function() { 
    $(this).closest('tr').find('input[type="text"]').prop('disabled', !this.checked); 
}).change(); 
+1

@undefined好聽點,改爲使用'[TYPE = 「...」]'選擇。 – xdazz

+0

謝謝。它正在工作,但在頁面呈現時默認情況下,未選中複選框,應禁用這些文本框。我怎樣才能得到這個工作。請。 – user1282609

+1

@ user1282609綁定後觸發更改事件,檢查我的更新。 – xdazz

相關問題