加载页面后,Asp.Net MVC JavaScript无效

时间:2015-10-25 18:09:11

标签: javascript jquery asp.net asp.net-mvc

我正在开发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文件并在视图中挂钩,但它的工作方式相同。 哪里可能是错误?

2 个答案:

答案 0 :(得分:1)

您的change事件未触发,因为您尝试附加到班级.IsChoosed

尝试将change处理程序更改为: -

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

所以#IsChoosed代替.IsChoosed

修改

另外,更改: -

var FormReload = new function ()

到此: -

function FormReload()

答案 1 :(得分:0)

function stripAccents($string){ $accents = '/&([A-Za-z]{1,2})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml|caron);/'; $string_encoded = strtolower(htmlentities($string,ENT_NOQUOTES,'UTF-8')); return $string_encoded = preg_replace($accents,'$1',$string_encoded); - 第一个参数是名称

选择器@Html.CheckBox("IsChoosed",...查找 $(".IsChoosed")。因此未设置IsChoosed回调。

要解决此问题,您可以执行以下操作:

onchange