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