【发布时间】:2016-06-24 01:46:33
【问题描述】:
我在我的“复选框”中实现了“必需”验证,它有效,“设置焦点”在字段上,但没有显示验证消息!
<form asp-action="Create">
<div class="form-horizontal">
<h4>Etapa 4 - Termos de Uso</h4>
<h5>Para concluir a sua inscrição basta validar que você não é um robo e concordar com os termos de uso!</h5>
<hr />
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
</div>
<div class="form-group">
<div class="g-recaptcha" data-sitekey="6LcgsyITAAAAAHiF8A1MGysKGUfQddq-_uzBD8ba"></div>
</div>
<div class="form-group">
<div class="col-md-8 checkbox-inline">
<input asp-for="Aceite" required oninvalid="this.setCustomValidity('Para concluir a inscrição é necessário aceitar os termos de uso')"/>
<a href="#" data-toggle="modal" data-target="#myModal">Li e concordo com os termos de uso e privacidade</a>
</div>
</div>
<div class="form-group">
<div class="col-md-8 checkbox-inline">
<input asp-for="AceitePromocao" />
<label asp-for="AceitePromocao"></label>
</div>
</div>
<div class="form-group">
<div class="col-md-pull-12">
<input type="submit" value="Aceitar e concluir" class="btn btn-success btn-lg" />
</div>
</div>
</form>
【问题讨论】:
-
您希望哪个属性出现验证错误?您所显示的只是
bool属性的复选框,除非恶意用户提交了null值(true和false都对bool有效),否则它们永远不会出现验证错误。 -
想要验证它是否被选中,在我看来验证正在工作,为什么不选择何时并尝试发送未发送并且 setfocus 已指定到复选框!但没有显示消息
-
因为如果没有检查它的值
false,这是bool属性的有效值,因此不会显示错误。如果您想在未选中的情况下显示错误消息,那么您可以在提交并返回视图时添加ModelState错误。或者您可以编写自己的[MustBeTrue]验证属性来实现IClientValidatable以获得客户端和服务器端验证 -
我明白,这个验证的最佳实践是什么,javascript,“必须是真的”,有一个例子吗?
标签: asp.net-mvc html asp.net-core-mvc