0

我被困在这里,非常感谢帮助。我在剃刀视图中有一个表单,其中包含当前城市的输入字段,如下所示:

@Html.LabelFor(x => x.UserModel.CurrentCity)
@Html.TextBoxFor(x => x.UserModel.CurrentCity, new { @data_bind = "value: UserModel.CurrentCity ", @class = "city", @data_val = "true", @data_val_required="City is required" })
@Html.ValidationMessageFor(x => x.UserModel.CurrentCity)

我想要此字段的自动完成功能,并为此使用 jquery 令牌输入插件,例如:

$(".city").tokenInput('@Url.Action("AutocompleteCity", "Settings")',{ minChars: 2, tokenLimit: 1, hintText: "Type in a city" });
$(".city").tokenInput("add", {name: viewModel.UserModel.CurrentCity()});

除了客户端不显眼的验证外,一切正常。即使 CurrentCity 为空,也会发布表单。

我还尝试将 MVC 助手更改为纯 html:

<input data-val="true" data-val-required="City is required" type="text" class="city" data-bind = "value: UserModel.CurrentCity, attr: { name: 'UserModel.CurrentCity', id: 'UserModel.CurrentCity'}" />
<span class="field-validation-valid" data-valmsg-for="UserModel.CurrentCity" data-valmsg-replace="true"></span>

这种方法可以防止提交表单,但不会将验证错误类注入到 span 中,并且不会显示错误消息。

有什么建议么?

4

1 回答 1

0

您创建的原始输入元素被隐藏。您可能需要启用隐藏元素的验证:jquery.validate v. 1.9 忽略一些隐藏输入https://stackoverflow.com/a/13295938/173225

于 2013-01-16T16:49:59.483 回答