由于某种原因,我在输入字段上的oninvalid属性根本没有触发。
我正在尝试设置setCustomValidity,并且几乎到处都在寻找其他人的操作方式,如果我用谷歌搜索“ setCustomValidity无效”之类的东西,我得到的就是没有设置oninput="this.setCustomValidity('');"
oninput属性工作正常,但是,如果我在oninput中放置警报,则会显示该警报。 虽然只有一次。这正常吗?
这是我的表单组,它位于Razor表单内,其中有一个输入字段,我将它与其余部分分开以提高可读性。
<div class="form-group">
<p class="control-label col-md-5"><i class="fa fa-exclamation-triangle triangle" aria-hidden="true"></i> <b>Datum in dienst</b></p>
<div class="col-md-4">
<input id="datum_in_dienst" name="datum_in_dienst" class="form-control" type="date" oninvalid="alert('het veld is leeg');this.setCustomValidity('Verplicht invullen!');" oninput="this.setCustomValidity('');" required />
@Html.ValidationMessageFor(model => model.datum_in_dienst, "", new { @class = "text-danger" })
</div>
</div>
显示的错误提示“此字段是必需的”,我认为这是标准的javascript错误消息,如果我错了,请纠正我。但我希望它显示“ Verplicht invullen!”。
我还已经将后端中的@Html.ValidtionMessageFor
消息更改为“ Verplicht invullen!”。但是我认为这只会显示在@Html.EditorFor
上,因为当我仍然有@Html.Editorfor
时,它说“ Het veld'Datum_in_Dienst'moet worden ingevuld”。
最后但并非最不重要的一点是,我也尝试过创建函数
function test(input) {
if (input.value == "") {
input.setCustomValidity('maybe show this text this time?');
} else {
input.setCustomValidity('');
}
}
辛勤工作。
谢谢。