mvc4中所有视图的通用javascript验证

mvc4中所有视图的通用javascript验证,javascript,jquery,asp.net-mvc-4,Javascript,Jquery,Asp.net Mvc 4,我试图实现一个自定义按钮面板,它将显示在mvc4应用程序的每个创建视图中。单击save时,它应该转到一个常规javascript函数,该函数验证视图/表单,并在字段旁边的视图上以警报的形式返回错误。到目前为止,我所能做的就是: 编辑 这是一个示例视图: 我在相应的控制器中的保存上设置了一个断点,但它甚至没有命中它。我不确定我的javascript哪里出错了。任何帮助都将不胜感激。您的事件需要在页面加载后绑定 $(document).ready(function () { $('a.but

我试图实现一个自定义按钮面板,它将显示在mvc4应用程序的每个创建视图中。单击save时,它应该转到一个常规javascript函数,该函数验证视图/表单,并在字段旁边的视图上以警报的形式返回错误。到目前为止,我所能做的就是:

编辑

这是一个示例视图:


我在相应的控制器中的保存上设置了一个断点,但它甚至没有命中它。我不确定我的javascript哪里出错了。任何帮助都将不胜感激。

您的事件需要在页面加载后绑定

$(document).ready(function () {
    $('a.button.positive').click(function (e) { e.preventDefault();

        if (!form.validate()) {
            alert('validation error');
            return false;                
        }
        else {
            form.submit();
            alert('submitted');
            return true;
        }

    });

});
如果希望绑定在某些函数中是全局的。在文档中调用该函数。就绪:

function BindSave() {
    $('a.button.positive').click(function (e) { e.preventDefault();

        if (!form.validate()) {
            alert('validation error');
            return false;                
        }
        else {
            form.submit();
            alert('submitted');
            return true;
        }

    });

}

$(document).ready(function () {
    BindSave();
});
编辑:

工作小提琴:

编辑:

表单的选择器应如下所示:

$("#form")

你能不能用普通的html制作一把小提琴并展示给我们看?在表单的提交事件中附加一个点击处理程序是没有意义的。此时已发生单击,因此验证代码将永远不会运行。您在哪里初始化validate方法?正如@charlietfl所说,您还应该绑定submit事件,不要先取消默认事件,检查表单是否无效并取消它,如果这样做,您只需要一个@innodel我认为你不能用ASP代码制作JSFIDLE!这是js,但它的asp代码。这只是为了说明按钮等的效果,以及我希望能够做什么…事件甚至没有发生?我修改了表单的选择器现在它说:JavaScript运行时错误:对象不支持属性或方法“验证”。如果要使用验证,需要使用插件:。要使表单有效,您可以执行$form.valid。您需要添加对插件的引用。有了mvc,您最好使用不显眼的数据注释。
function BindSave() {
    $('a.button.positive').click(function (e) { e.preventDefault();

        if (!form.validate()) {
            alert('validation error');
            return false;                
        }
        else {
            form.submit();
            alert('submitted');
            return true;
        }

    });

}

$(document).ready(function () {
    BindSave();
});
$("#form")