2013-05-04 60 views
0

我正在處理C#MVC 4項目,並且在確定是否使用jquery檢查複選框時遇到問題。基本上,我需要根據複選框的值顯示和隱藏頁面上的其他控件。下面是複選框CSHTML代碼:JQuery總是爲複選框值返回false

 @if (Model.SkuCustomizations[i].hasStoneChange) 
    { 
     <div class="two-col-label">@Html.DisplayNameFor(m => m.SkuCustomizations[i].Stone_HasChange)</div> 
     <div id="divStoneChange" data-idx="@i" class="two-col-value"> 
      <input type="checkbox" id="[email protected]" name="stoneChange" checked="@Model.SkuCustomizations[i].Stone_HasChange"> 
     </div> 
     <div class="last" /> 
    } 

,這裏是嘗試和拉查值的代碼:

$('#divStoneChange').change(function() { 
    var idx = $('#divStoneChange').attr('data-idx') 
    var stone = $('#chkStone' + idx).is(':checked') 
    if (stone != false) 
    { 
     $("#divVendorCost").show(); 
    } 
    else 
    { 
     var type = $('#ddMetalType' + idx).val(); 
     var mount = $('#chkMount' + idx).is(':checked') 
     var subcat = $('#ddSubCat' + idx).val(); 
     if (mount != true && (subcat == "Whole Set" || subcat == "" || subcat == "-- Select --" || subcat == undefined) && (type == "-- Not Customized --" || type == "" || type == undefined)) 
     { 
      $("#divVendorCost").hide(); 
     } 
    } 
}); 

$('#chkStone' + idx).is(':checked')總是返回false不管複選框的值。有人能指出我做錯了什麼嗎?

感謝

回答

2

在您選擇

var stone = $('#chkStone_' + idx).is(':checked'); 
      //-----------^---here; 

試試這個錯過_那裏,

... 
    var idx = $('#divStoneChange').attr('data-idx'); 
    if ($('#chkStone_' + idx).is(':checked')) 
    { 
    $("#divVendorCost").show(); 
    } 
    else 
    { 
    var type = $('#ddMetalType' + idx).val(); 
    var mount = $('#chkMount' + idx).is(':checked') 
    var subcat = $('#ddSubCat' + idx).val(); 
    if (mount != true && (subcat == "Whole Set" || subcat == "" || subcat == "-- Select --" || subcat == undefined) && (type == "-- Not Customized --" || type == "" || type == undefined)) 
    { 
     $("#divVendorCost").hide(); 
    } 
    } 
    .. 
+0

Doh!我知道這可能是我錯過的一些愚蠢的東西。謝謝,我會在幾分鐘後嘗試這個......但我確定這是問題所在。 – user2167861 2013-05-04 18:36:39

1

試試這個:

var stone = $('#chkStone_' + idx).is(':checked'); 

因爲,你data-idx價值"@i"id"[email protected]",所以你需要添加一個_也在ID選擇。

+0

謝謝!最愚蠢的錯誤似乎總是最難找到......哈哈。 – user2167861 2013-05-04 20:47:36