2014-12-23 26 views
1

我有哪里像电子邮件一些投入在HTML5正则表达式得到验证的一种形式。 我需要验证其他输入,我无法使用模式。我需要查看数据库并查找重复项。我可以通过调用某个函数而不是使用模式来验证吗?HTML5输入验证与功能,而不是模式

我可以通过调用某个函数来验证用户键入的内容,但我的最终目标是实现UI一致性。因为电子邮件输入使用模式和正则表达式验证,用户界面是由浏览器创建的,因此验证等领域,我不能使用正则表达式时,我婉相同的用户界面。

+1

这是可以做到的,但你会从HTML5式验证疏远自己,特别是因为你的函数会必须是异步的才能查找数据库。 (我99%肯定“预HTML5” JS验证框架是在那里,所以你可以尝试任何这些) – Katana314

+0

你可以做到这一点,只是做与AJAX请求验证对数据库数据。 – ianaya89

+0

您可以使用jQuery轻松实现此效果。可以使用jQuery.change()函数来验证基本上使用jQuery.ajax(飞输入),或特定jquery.post()/ jquery.get()函数。 – 9997

回答

1

是的,这是可能的!

您只需要获取输入元素(通过回调或document.getElementBy ...)并调用

setCustomValidity('message here')
。如果输入有效,您可以拨打
setCustomValidity('')
清除错误消息。

例如:

<input name='email' onchange='checkEmail(this)'></input> 

然后定义checkEmail ...

function checkEmail(element) { 
    ajaxCallToServer(element.value, function callback(hypotheticalResponse) { 
     if (hypotheticalResponse.isOk) { 
      element.setCustomValidity(''); 
     } else { 
      element.setCustomValidity('Sorry that email is already taken!'); 
     } 
    }); 
} 
0

不,HTML5确认没有任何功能的概念。它原则上是与语言无关的,甚至不会在浏览器中假设JavaScript支持。它仅支持HTML5规范中描述的检查。