2015-10-25 3 views
2

Я разрабатываю приложение ASP.NET MVC. Я использую частичное представление для меню в форме макета для некоторых видов. Мне нужно использовать JavaScript в этом представлении, но его работа выполняется только в первый раз - после загрузки. Позже - нет. Частичный вид, как это:Asp.Net MVC JavaScript не работает после загрузки страницы

@Scripts.Render("~/bundles/jquery") 
@Html.CheckBox("IsChoosed", true, new { onclick = "FormReload();" }) 

<script> 
    $(".IsChoosed").on("onchange", function() { 
     FormReload(); 
    }); 

    var FormReload = new function() 
    { 
     alert("FormReload"); 
    }; 

</script> 

LayoutForm:

@Html.Partial("_ViewPartial") 

@RenderBody() 

сообщения оповещения отображаются после загрузки страницы, если задано значение флажка. Но после того, как я меняю стоимость - нет. Я попытался переместить методы JavaScritp в файл ***. Js и подключить его к просмотру, но он работал так же. Где может быть ошибка?

ответ

1

Ваше change событие не стрелять, потому что вы пытаетесь прикрепить к классу .IsChoosed.

попробуйте изменить change обработчик: -

$("#IsChoosed").on("onchange", function() { 
    FormReload(); 
}); 

так #IsChoosed вместо .IsChoosed.

EDIT

Кроме того, изменение: -

var FormReload = new function() 

к этому: -

function FormReload() 
+0

ieaglle, BG101, большое вам спасибо! Я изменил код, как вы сказали, но его все еще не работает. Кроме того, это связано с тем, что предупреждающее сообщение отображается после загрузки pade, а позже - нет. –

+0

Если они помогли, дайте им верхнюю отметку и отметьте соответствующий ответ как правильный: ^) – BenG

+0

BG101, извините, это не помогло. –

0

@Html.CheckBox("IsChoosed",... - первый аргумент имя.

Селектор $(".IsChoosed") ищет классIsChoosed. Так что onchange callback не установлен.

Чтобы исправить это можно сделать следующее:

@Html.CheckBox("IsChoosed", true, new { @class="IsChoosed", onclick = "FormReload();" }) 
+0

ieaglle, спасибо большое! Я изменил код, как вы сказали, но его все еще не работает. Кроме того, это связано с тем, что предупреждающее сообщение отображается после загрузки pade, а затем не –

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