Javascript JQuery验证错误放置

Javascript JQuery验证错误放置,javascript,jquery,asp.net-mvc-4,jquery-validate,Javascript,Jquery,Asp.net Mvc 4,Jquery Validate,我正在尝试将JQuery验证用于ASP.NET MVC4。我的意图是当页面出现任何错误时,应该在控件之前显示。但是错误总是显示在控件的下一行 以下是我的JS、cshtml文件中的代码片段 $(function () { $('#Transaction1Screen1').validate({ errorElement: "div", errorLabelContainer: '#errorMessages', errorPlacement: function (error

我正在尝试将JQuery验证用于ASP.NET MVC4。我的意图是当页面出现任何错误时,应该在控件之前显示。但是错误总是显示在控件的下一行

以下是我的JS、cshtml文件中的代码片段

$(function () {
$('#Transaction1Screen1').validate({
    errorElement: "div",
    errorLabelContainer: '#errorMessages',
    errorPlacement: function (error, element) {
        error.insertBefore(element);
    }
});

$("#TextBox1").rules("add", { email: true, messages: { email: 'Verify the e-mail in TextBox1' } });

});
束映射 HTML内容
@Html.TextBoxFor(m=>m.TextBox1,新字典{{{“id”,“TextBox1”},{“name”,“TextBox1”},{“Class”,“txtfield controlWidth”},{“jsValidation”,“checkEMailAddr”})

@Html.ValidationMessageFor(m=>m.TextBox1)
尝试HTML内容

@Html.ValidationMessageFor(m => m.TextBox1)
@Html.TextBoxFor(m => m.TextBox1, new Dictionary<string, object> { { "id", "TextBox1" }, { "name", "TextBox1" }, { "Class", "txtfield controlWidth" }, { "jsValidation", "checkEMailAddr" } })
@Html.ValidationMessageFor(m=>m.TextBox1)
@TextBoxFor(m=>m.TextBox1,新字典{{{“id”,“TextBox1”},{“name”,“TextBox1”},{“Class”,“txtfield controlWidth”},{“jsValidation”,“checkEMailAddr”})

尝试如下初始化验证:

$(function(){
  $("#Transaction1Screen1").validate({
    errorElement: "span",
    errorPlacement: function (error, element) {
          error.insertBefore(element);
    }
  });
});
errorElement属性意味着您需要使用什么元素来包装消息

如果使用“div”作为错误元素,元素将被放置在新行


希望这有帮助。

错误元素的更改似乎没有影响。不管我使用什么,错误都会显示在@Html.ValidationMessageFor(m=>m.TextBox1)上,这样就行了。然而,我的意图是通过脚本定义行为。我可以控制脚本,但不能控制HTML。因此,无论HTML.Validation对象出现在哪里,我都希望显示脚本中定义的错误消息。MVC不是自动创建调用
.validate()
方法的代码吗?此方法不能被调用两次,因为所有后续调用都将被忽略。查看呈现的页面代码以进行验证。
@Html.ValidationMessageFor(m => m.TextBox1)
@Html.TextBoxFor(m => m.TextBox1, new Dictionary<string, object> { { "id", "TextBox1" }, { "name", "TextBox1" }, { "Class", "txtfield controlWidth" }, { "jsValidation", "checkEMailAddr" } })
$(function(){
  $("#Transaction1Screen1").validate({
    errorElement: "span",
    errorPlacement: function (error, element) {
          error.insertBefore(element);
    }
  });
});