在不同元素上显示jQuery验证消息 @TextBox(“管理器控件”,“新的{id=“管理器控件”,“@class=“表单控件”,placeholder=“要搜索的类型…”) @Html.HiddenFor(model=>model.manager,新的{id=“manager dn”}) @Html.ValidationMessageFor(model=>model.manager)

在不同元素上显示jQuery验证消息 @TextBox(“管理器控件”,“新的{id=“管理器控件”,“@class=“表单控件”,placeholder=“要搜索的类型…”) @Html.HiddenFor(model=>model.manager,新的{id=“manager dn”}) @Html.ValidationMessageFor(model=>model.manager),jquery,asp.net-mvc,unobtrusive-validation,Jquery,Asp.net Mvc,Unobtrusive Validation,管理器控件是一个自动完成,自动完成选择处理程序向隐藏字段添加一个值,该字段表示管理器的值。我可以为隐藏字段启用验证消息,这很好,但是验证消息本身显示在表单外部 我想在管理器控件元素上显示消息本身。最好的方法是什么?提交表单时,manager dn字段必须有一个值,因此简单地说应该填写manager控件将不起作用 我可以想到的两种方法是使用LabelFor而不是HiddenFor,从而显示难看的文本字符串,或者找到一种方法在输入上方显示验证消息 编辑: 如果您不想向用户显示所选自动完成项目的值,但

管理器控件
是一个自动完成,自动完成选择处理程序向隐藏字段添加一个值,该字段表示管理器的值。我可以为隐藏字段启用验证消息,这很好,但是验证消息本身显示在表单外部

我想在
管理器控件
元素上显示消息本身。最好的方法是什么?提交表单时,
manager dn
字段必须有一个值,因此简单地说应该填写
manager控件将不起作用

我可以想到的两种方法是使用LabelFor而不是HiddenFor,从而显示难看的文本字符串,或者找到一种方法在输入上方显示验证消息

编辑:


如果您不想向用户显示所选自动完成项目的值,但确实想验证是否已选择某个项目,则此功能非常有用。

据我所知,无法实际更改验证消息旁边显示的元素

我的解决方案:

<div class="editor-field">
    @Html.TextBox("manager-control", "", new { id = "manager-control", @class = "form-control", placeholder = "Type to search..." })
    @Html.HiddenFor(model => model.manager, new { id = "manager-dn" })
    @Html.ValidationMessageFor(model => model.manager)
</div>

请为否决票提供建设性反馈,不要只是开车经过。
<div class="editor-field">
    @Html.TextBoxFor(model => model.manager, new { id = "manager-dn", @class="form-control", style="position:absolute;z-index:-1;" })
    @Html.TextBox("manager-control", "", new { id = "manager-control", @class = "form-control", placeholder = "Type to search..." })                        
    @Html.ValidationMessageFor(model => model.manager)
</div>
$('#manager-dn').width($('#manager-control').width());