MVC - ClientValidationEnabled = true,但仍有回发,破坏了我的jQuery

时间:2013-03-13 12:06:19

标签: jquery asp.net-mvc validation postback

我的页面上有一些jQuery,当点击一个按钮时会显示带有一些控件的div。 最初div是隐藏的。

我在web.config中设置了ClientValidationEnabled = true。 如果我单击show按钮,带有控件的div显示,但如果我填写一些数据,然后单击提交按钮,而不是启动客户端验证,页面将重新加载,我又回到了开始状态,我的div被隐藏了。

导致这种情况的原因是什么?

以下是我的观点......

<script type="text/javascript" src="~/Scripts/jquery-1.7.1.min.js"></script>
<h2>cardiac</h2>

<br>
@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>cardiac</legend>
        <div id ="confirmdiv" class="notificationdiv" align="center">  
            Please check sample type, this screen is only for <b>Cardiac</b> results and <b>NOT</b> Liquid Cardiac.
            <br />    
            <input type ="button" id ="buttonConfirm" value ="Confirm"/>
            <input type ="button" id ="buttonBack" value ="Back"/>
        </div>
        <div id ="formdiv" style="display:none;">
            <br>
            Please fill in your results...    
            <br/>
            @Html.Partial("_CreateOrEdit", Model)    

            <input type="submit" value="Submit" />
        </div>
    </fieldset>
}

<script type="text/javascript">
    $(document).ready(function () {

        $("#buttonConfirm").click(function () {
            $("#confirmdiv").hide();
            $("#formdiv").show();
        });
    });
</script>

1 个答案:

答案 0 :(得分:4)

看起来你包括jQuery,但不包括其他必需的脚本。

尝试添加

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/jquery.validate.min.js"></script>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.min.js"></script>

这些将实现所需的验证属性。

编辑:oops我假设你的模型有必要的属性来根据需要调用验证