HTML5表单验证仅在我提交表单时有效吗?

时间:2015-12-14 11:05:25

标签: jquery html html5 forms html-form

我是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类型验证不起作用,因为我可以在输入标记中插入任何类型的值。是我还是错过了什么?验证仅在提交表单时有效吗?

如何在不提交任何表格的情况下解决此问题并验证我的输入?

2 个答案:

答案 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 
       }



       });