通过模型dataannotations验证客户端,在razor视图字段onchange事件

时间:2016-08-29 20:54:07

标签: jquery asp.net-mvc validation razor

我已经验证了我的模型并且工作正常......但只有当我按下提交按钮...

我想在用户更改值时触发验证...

我有一个编辑器的日期选择器

    <div class="form-group">
        @Html.LabelFor(model => model.EndDate, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.EndDate, new { htmlAttributes = new { @class = "form-control", onchange = "trigger validation here" } })
            @Html.ValidationMessageFor(model => model.EndDate, "", new { @class = "text-danger" })
        </div>
    </div>

我使用了form.submit();工作正常..但我不想提交,直到客户端按下提交按钮

我能做什么?

1 个答案:

答案 0 :(得分:0)

否则,您可以通过添加data-val='false'

来使用以下内容禁用特定输入的验证
@Html.EditorFor(model => model.EndDate, new { htmlAttributes = new {  @data_val = "false" } })

并在提交按钮代码中使用以下内容,或在提交期间手动验证

     var form = $( "#thisform" );
     form.validate();
     if (form.valid()) {
    // ...
     }

修改

您可以尝试使用以下代码禁用jQuery Validation插件上特定事件的验证(针对所有字段),以进行客户端验证:

$.validator.setDefaults({
    onfocusout: false,
    onkeyup: false,
    onsubmit: true
})

OR

$("#myform").validate({
    onfocusout: false,
    onkeyup: false,
    onsubmit: true
});

参考:https://jqueryvalidation.org/jQuery.validator.setDefaults/https://jqueryvalidation.org/validate/