我是HTML5的新手,我有以下疑问。
在页面中我有这种情况:
<div id="inserimentoVariazioneAnticipo" class="row">
<div class="col-md-5">
<p style="line-height: 200%;">Inserire la variazione dell'anticipo:</p>
</div>
<div class="col-md-7">
<input id="variazioneAnticipo" class="rightAlligned form-control" style="width:50%" type="text" type="number" step="0.01" />
</div>
</div>
<button id="confermaAnnullaTrasmissione" type="button" class="btn btn-primary">
Conferma
</button>
因为您可以看到我设置了input
标记type="number" step="0.01"
,因为它必须采用十进制数字。
正如您所看到的,我没有<form>
标签,因为我不必提交表单,但是在单击confermaAnnullaTrasmissione
按钮时我必须执行jQuery函数。
问题在于,这样做,在我看来,HTML5类型验证不起作用,因为我可以在输入标记中插入任何类型的值。是我还是错过了什么?验证仅在提交表单时有效吗?
如何在不提交任何表格的情况下解决此问题并验证我的输入?
答案 0 :(得分:5)
两件事:
首先,从输入中删除type="text"
。您正在混合type="text"
和type="number"
。
其次,您可以使用HTML5 Validation API验证所有表单或单个表单元素。
document.getElementById('variazioneAnticipo').checkValidity();
如果验证成功,该行将返回。
请参阅这篇有关验证API的有趣文章:
http://www.html5rocks.com/en/tutorials/forms/constraintvalidation
答案 1 :(得分:-2)
添加jquery.validate.unobtrusive.js文件。
您可以像这样触发jquery函数:
$.validator.unobtrusive.parse("#frmcreateCountry");
$("#formid").on("submit",function(){
if($(this).valid())
{
// server code here
}
});