2013-04-30 123 views
0

下面是我試圖用來使隱藏文本框可見的jQuery代碼。然而,當點擊文本框保持隱藏狀態時,alerts都不會觸發。jQuery .change事件不會觸發ASP MVC CheckBoxFor

對於此複選框,我試過.click,.change.mousedown但是沒有任何工作。

這裏是jQuery的

$('#OverrideRegionInd').click(function() { 
    alert("here"); 
    alert($(this).is(':checked')); 
    if ($(this).is(':checked')) { 
     $('#territoryName').html(""); 
     $('#Region').val(""); 
     $('#Region').show(); 
    } else { 

    } 
}); 

這裏是從視圖中的代碼。這是一個ASP MVC 3網站

<div class="M-editor-label"> 
     Override Territory Manually? 
    </div> 
    <div class="M-editor-field" style="padding-right:190px;padding-top:5px;"> 
     @Html.CheckBoxFor(Model => Model.OverrideRegionInd) 
    </div> 

編輯

這裏是整個<div>它呈現

<div class="M-editor-field" style="padding-right:190px;padding-top:5px;"> 
     <input data-val="true" data-val-required="The Override Territory? field is required." id="OverrideRegionInd" name="OverrideRegionInd" type="checkbox" value="true" /><input name="OverrideRegionInd" type="hidden" value="false" /> 
    </div> 
+0

檢查html。該複選框有一個ID – 2013-04-30 21:41:45

+0

讓我看看呈現的HTML – 2013-04-30 21:42:48

+0

已添加到帖子 – NealR 2013-04-30 21:48:03

回答

1

您發佈的代碼(和生成的HTML)後工作完全一樣的(請參閱Fiddle HERE

唯一的區別是,JSFiddle將jQuery包裝爲一個document.ready來電,試試:

$(function() { 
    $('#OverrideRegionInd').click(function() { 
     //click function code 
    }); 
}); 
+0

將這段代碼放在'document.ready'中使它工作。任何想法爲什麼它不能在它之外工作? (我剛剛在一週前開始在工作中學習jQuery) – NealR 2013-04-30 21:57:56

+0

@NealR因爲不能保證當代碼執行時DOM已經完全加載(在你的情況下它沒有),所以你應該總是使用'document.ready '(與純JavaScript中的window.onload類似)。 – mattytommo 2013-04-30 21:59:04