繁体   English   中英

如何强制Razor在JavaScript中检查TextBox上的验证

[英]How do I force Razor to check validation on TextBox in JavaScript

我有一个名为ACTIVITY_NAME的字段,其定义如下:

[Required(AllowEmptyStrings = false, ErrorMessage = "Acitivity Name is Required.")]
[StringLength(255)]
    public string ACTIVITY_NAME { get; set; }

我设置了文本框使其呈现为前端,如下所示:

@Html.TextBoxFor(m => m.EditActivity.ACTIVITY_NAME, new { @id = "ActivityName", @class = "width400", placeholder = Localization.ActivityName })
@Html.ValidationMessageFor(m => m.EditActivity.ACTIVITY_NAME)

提交表单后,将触发以下JS处理程序:

    $('#AddTaskActivity').click(function (evt) {
        $('#activityModal').modal('hide');
        evt.preventDefault();
        var formData = $('#ActivityForm').serialize();
        CreateActivity(formData);
    });

因此,基本上,这将阻止默认处理程序,并且不会触发验证。 我没有编写此代码,但是我想添加验证。 在发布到服务器之前,如何在处理程序中强制触发验证?

也许有更好的方法,但这是我在提交表单之前触发客户端验证的方式。 在提交表单之前,必须先调用它们。

// For non Ajax forms
function ValidateHtml5(event) {
    event = event || window.event || event.srcElement;

    var form = $(event.target);

    if (form[0].checkValidity()) {
        return true;
    } else {
        event.preventDefault();
        $('<input type="submit">').hide().appendTo(form[0]).click().remove(); // trigger
        return false;
    }
}

// For Ajax form validation
function ValidateHtml5Ajax(form) {
    if (form.checkValidity()) {
        return true;
    } else {
        $('<input type="submit">').hide().appendTo(form).click().remove(); // trigger
        return false;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM