2013-05-04 49 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