2015-05-15 8 views
0

我工作的Web應用程序與ASP.Net MVC,並與HTML複選框問題有效和無效複選框element.So這是我複選框的視圖模型:與jQuery

public class ServiceViewModel:ViewModelBase 
{ 
    public virtual string Name { get; set; } 
    public virtual bool IsActive { get; set; } 

} 

我的看法是像這樣:

 @model IList<Saloon.ViewModels.ServiceViewModel> 

     <ul> 
      @for (var i = 0; i < Model.Count; i++) 
      { 
       <li> 
        <input type="checkbox" class="chk" name="@Model.Name[i]" id="@(i+1)" /> 
        <label for="@Model.Name[i]">@Model.Name[i]</label> 
       </li> 
      } 
     </ul> 

和檢查,未選中我的jQuery代碼的複選框的:

<script> 
$('input[type=checkbox].chk').click(function() { 
    if ($(this).is(":checked")) { 
     $(this).prop("checked", false); 
    } else { 
     $(this).prop('checked', true); 
    } 
}); 
</script> 

但這jQuery代碼確實ñ ot work.even我已經嘗試$('input[type=checkbox].chk').change(function() {... 和其他一些可用的JQuery和我在互聯網上找到的方式,但這些都不起作用。

+0

給出一個把腳本代碼中的document.ready塊,你可以訪問他們 – Adil

回答

4

你的代碼幾乎沒有,但是你錯過的事情,document.ready()

您的代碼應該工作,沒有什麼不對改變複選框的狀態。

相反,您的.click()將不會正確啓動,因爲jQuery沒有完全加載。那麼也許還有另一個因素沒有正確地解決事件,但這是我可以從你提供的內容中猜出來的。

<script> 
$(document).ready(function() { 
    $('input[type=checkbox].chk').click(function() { 
     if ($(this).is(":checked")) { 
      $(this).prop("checked", false); 
     } else { 
      $(this).prop('checked', true); 
     } 
    }); 
}); 
</script> 
+0

之前,並不需要存在於DOM元素工作。 –

+0

與點擊事件使用的函數有什麼問題嗎? –

+0

@然後,它是關於如何呈現您的cshtml上的腳本部分。它看起來像'.net-mvc'。給我相關的代碼,如你的代碼所屬的'cshtml'和你的'BundleConfig'(如果你使用的話),如果可能的話,你可以在瀏覽器控制檯上看到哪個錯誤(瀏覽器控制檯日誌將是最快的方法要解決這個問題,如果沒有,你的網站不會正確加載你的'jQuery'是100%。 – hina10531

1

當你,如果它被選中,這意味着選中的屬性現在設置爲true,然後要檢查的條件,如果檢查其設置爲未選中狀態,反之亦然點擊該複選框這當然不會產生任何結果。檢查checked屬性爲true後,將checked屬性設置爲true,反之亦然。在這個實際例子中,這不會起任何作用,因爲你沒有做任何其他處理。

使用類名只能做你的job.Like下面

<script> 
    $(function(){ 
     $('.chk').click(function() { 
      if ($(this).is(":checked")) { 
       $(this).prop("checked", true); 
      } else { 
       $(this).prop('checked', false); 
      } 
     }); 
    }); 
</script> 
+0

謝謝,但這並不起作用。 –