2013-04-30 2 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> 

EDIT

Вот вся <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 –

+0

Показать HTML-код, который отображается –

+0

Добавлено в сообщение – NealR

ответ

1

код вы вывесили (и полученный HTML) работает точно так, как это (см. Fiddle HERE)

Единственная разница, это обертывание JSFiddle, которое jQuery в document.ready звоните, попробуйте следующее:

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

Ввод этого кода в 'document.ready' заставлял его работать. Любая идея, почему она не будет работать за ее пределами? (Я только начал изучать jQuery на работе около недели назад) – NealR

+0

@NealR Потому что нет гарантии, что DOM полностью загрузился, когда этот код выполнит (в вашем случае это не так), поэтому вы всегда должны использовать 'document.ready '(аналогично' window.onload' в чистом JavaScript). – mattytommo

Смежные вопросы