Javascript 模糊上的单个输入验证
我正在尝试使用HTML5来验证数字输入。我正在使用jQuery创建元素。如何让浏览器在不必单击提交按钮的情况下显示错误消息onBlurJavascript 模糊上的单个输入验证,javascript,html,validation,Javascript,Html,Validation,我正在尝试使用HTML5来验证数字输入。我正在使用jQuery创建元素。如何让浏览器在不必单击提交按钮的情况下显示错误消息onBlur jQuery(document.createElement('input')).attr({“type”:“number”,“min”:“0”,“max”:“60”,“step”:“1”,“value”:“5”)设置.blur()处理程序。请参阅。jQuery(document.createElement('input')).attr({“type”:“numb
jQuery(document.createElement('input')).attr({“type”:“number”,“min”:“0”,“max”:“60”,“step”:“1”,“value”:“5”)代码>设置.blur()处理程序。请参阅。jQuery(document.createElement('input')).attr({“type”:“number”,“min”:“0”,“max”:“60”,“step”:“1”,“value”:“5”}).blur(function(){
var val=parseInt(jQuery(this).val(),10);
if(valparseInt(jQuery(this).attr('max'),10)){
jQuery(this).val(parseInt(jQuery(this).attr('min'),10));//将值设置为max
});
实际上,您不能通过API调用本机验证ui。由于验证ui也会自动聚焦元素,这不是一个好的可用性(用户不能将字段保留为无效并决定在页面上执行其他操作)
如果要执行此操作:必须使用validity属性和validationMessage属性实现验证yourslf。代码可能如下所示:
$('input[type="number"]').blur(function(){
//if field is validation candidate and is invalid alert the validationmessage
if( $.prop( this, 'willValidate' ) && !$.prop( this, 'validity').valid){
alert( $.prop( this, 'validationMessage' );
}
});
当然,使用警报有点愚蠢,但会使代码变得干净。如果你想使用webshims库,有一个淋浴ROR帮助程序。我已经发布了一个
关于助手方法$.webshims.validityAlert.showFor:
showFor需要dom元素jQuery对象或选择器作为第一个参数。
validationmessage作为可选的第二条消息
最后一个是布尔值,它将在不聚焦字段的情况下显示消息。啊,谢谢!这是对本机UI验证的一个非常好的替代。尽管如果他们实现了单独的验证,这将非常好。
$('input[type="number"]').blur(function(){
//if field is validation candidate and is invalid alert the validationmessage
if( $.prop( this, 'willValidate' ) && !$.prop( this, 'validity').valid){
alert( $.prop( this, 'validationMessage' );
}
});