6

我希望这个 div 显示表单验证是否不成功。

<div class="alert">
  <strong>Warning!</strong> @Html.ValidationSummary(false, "Fix these errors:")
</div>

我试着把它包在里面

if(! ViewData.ModelState.IsValid)

但是提交表单时不显示div。可能是因为没有回发由于 jquery 验证。验证逻辑似乎没问题,如果我删除 if 语句验证摘要列出所有不正确的输入字段。

如何根据验证切换 div 的可见性?

4

2 回答 2

3

更新

我重写了接受的答案。如果服务器连接速度很慢,则在服务器请求期间将显示错误 div。即使没有错误。我更改了它以在提交表单时检查表单是否有效。此代码片段假定您有一个表单。

$(document).ready(function () {
    $(".alert").hide(); //hides the div on page load

    $("form").submit(function () {
        if (!$(this).valid()) {
            $('.alert').show();
        }
    });        
}); 
于 2012-11-08T17:03:24.440 回答
2

您可以应用这个简单的脚本。它不是很复杂,但它应该可以解决问题

$(document).ready(function () {
    $('.alert').hide(); //hides the div on page load
    $('#submit').click(function () {  //assumes your submit button has id="submit"
        $('.alert').show(); //shows the div when submit is clicked
    });
});

如您所见,这实际上并不关心验证。它只是在单击提交按钮时使“警报” div 可见。如果存在验证错误,则 div 将显示您的警告。如果表单有效,我假设刷新或重定向,因此 div 将永远不会真正有机会显示。

于 2012-10-24T13:31:44.310 回答