HTML5 oninvalid不执行任何操作

时间:2018-06-20 07:08:26

标签: javascript asp.net-mvc html5 razor

由于某种原因,我在输入字段上的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('');
    }
}

辛勤工作。

谢谢。

0 个答案:

没有答案