2013-05-04 10 views
0

저는 C# MVC 4 프로젝트에서 작업 중이며 jquery를 사용하여 확인란을 선택했는지 확인하는 데 문제가 있습니다. 기본적으로 확인란의 값에 따라 페이지의 다른 컨트롤을 표시하거나 숨길 수 있습니다. JQuery는 항상 checkbox 값에 대해 false를 반환합니다.

$('#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를 반환하지 : 여기

 @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" /> 
    } 

그리고 시도하고 확인 값을 당겨하는 코드입니다 : 여기에 체크 박스에 대한 cshtml 코드입니다. 누군가 내가 잘못하고있는 것을 지적 할 수 있습니까?

답변

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

1

이 시도

감사 :

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

때문에, 당신의 data-idx 값이 "@i" 하고 id 값이 "[email protected]", 그래서 당신이 ID를 선택에도있는 _를 추가해야합니다.

+0

감사를 _ 보내고 말았습니다! 가장 멍청한 실수는 항상 찾기가 가장 힘든 것 같아요. 롤. – user2167861

관련 문제