MVC在普通帖子之前获取javascript进行验证(不是ajax)

时间:2014-03-30 19:32:55

标签: jquery asp.net-mvc

我无法在提交表单之前调用我的javascript,因此我可以进行一些客户端验证。我还想在txtVideo提交给控制器之前改变它的值。有没有一个很好的方法来做到这一点,或者我必须设置一个隐藏的字段(我想我认为有点hacky但会工作)

@section scripts{
<script>
    $("#VideoForm").submit(function () {
        alert("test");

    });
</script>

@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { @class = "form-horizontal", role = "form", name="VideoForm" }))
{
    @Html.AntiForgeryToken()

    <div class="row">
        <div style="margin:5px auto; text-align: center;">
            <img src="~/Content/Images/OMB_Logo.png" />
        </div>
    </div>
    <div class="row">
        <div class="col-lg-12" style="margin: 5px auto;">
            <input type="text" name="txtVideo" class="form-control input-lg" style="margin: 0px auto" />
        </div>
    </div>
    <div class="row">
        <div style="margin: 5px auto; text-align: center;">
            <input type="submit" class="btn btn-primary btn-lg" value="Submit Video" />
        </div>
    </div>
}

1 个答案:

答案 0 :(得分:0)

使用Jquery表单验证插件:

http://jquery.bassistance.de/validate/demo/

并在表单提交事件中执行此操作:

$('form[name="VideoForm"]').submit(function(){

$(this).validate();
// or
$('form[name="VideoForm"]').validate();
});

还有一件事,你正在设置表单名称atttribute到视频表单和jquery选择器,你正在使用id,它的错误。

如果你想申请id选择器,请执行以下操作:

@using (Html.BeginForm("Index", 
                       "Home", 
                        FormMethod.Post, 
                  new { @class = "form-horizontal", 
                        role = "form", 
                        id="VideoForm" }))

{
}