![](/img/trans.png)
[英]How do I filter the Model based on the value of a textbox using Javascript (Razor)
[英]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.