使用MVC,.Net Core 2.1,引导程序,JQuery非侵入式验证... 无论如何,是否可以从javascript函数中提取“验证”错误消息?
以此为模型,请注意错误消息:“需要字符串1”
public class TestObj
{
[DataType(DataType.Text)]
[Required(ErrorMessage = "String 1 is required.")]
public string str1 { get; set; }
public TestObj() { }
public TestObj(string i_str)
{
this.str1 = i_str;
}
}
这是我的控制人
public IActionResult Test()
{
TestObj model = new TestObj();
model = new TestObj("test1");
return View(model);
}
这是cshtml
<form asp-action="Test" asp-controller="Home" method="post" id="myform">
<div class="row">
<div class="col-xs-2" style="width:5em;">
<input asp-for="@Model.str1" class="form-control small_inp_box" />
</div>
</div>
<div style="clear:both; margin-top:1em;"></div>
<div asp-validation-summary="All" class="text-danger"></div>
<div style="clear:both; margin-top:1em;">
<label id="lbl_msg1"></label>
</div>
<input type="submit" name="Submit" class="btn btn-outline-dark" />
</form>
这就是JavaScript
<script>
$(document).ready(function () {
$("#lbl_msg1").text("Ready");
$(".small_inp_box:first").focus();
});
$(".small_inp_box").focusout(function () {
if (!$(this).valid()) {
$(this).addClass("red");
console.log("invalid!");
console.log($(this).dataset.valRequired);
}
else {
$(this).removeClass("red");
console.log("valid!");
}
})
</script
我可以从对焦功能中获取所需的验证消息“需要字符串1”吗?
答案 0 :(得分:0)
我不确定这是最好的方法,但是它应该可以工作。将其放入对焦功能中:
var fv = $('#myform').validate();
// setTimeout is needed to let validation to complete
var currentElement = this;
setTimeout(function() {
let error = fv.errorList.filter(function (e) { return e.element == currentElement; })[0];
console.log(error.message);
});