2010-06-01 65 views
0

我有文本框,如果输入的值需要使用一些正则表达式进行验证 我需要验证值,因为用户正在输入数据。 这是适合的事件吗?在文本框上使用onfocus事件的一些示例示例将有所帮助Javascript onfocus事件

回答

0

使用onKeypress或onKeyup。 初学者经常认为onChange会做你想做的,但只有当输入失去焦点时才会发生。 OnFocus无关紧要 - 即盒子首次获得焦点时,而不是当用户输入时。

0

通常,当文本输入丢失焦点时,您会这样做,因此它将使用blur事件。原因是许多输入在输入足够数量的字符之前是无效的。在用户输入一个有效的字符串时,用户可能会提出一个验证错误。例如,在进行电子邮件验证时,只有在输入了@符号后,输入才有效。请注意,您还需要验证提交表单时是否抓住该领域从未关注过的情况。

使用jQuery它可能看起来像:

$('.klass').blur(function() { 
    if (!$(this).val().match(/your-regular-expression/)) { 
     $(this).next('.validation-message').show(); 
     return false; // keep focus on field 
    } 
    return true; 
}); 

这是假定一些HTML一样

<input type="text" class="klass" name="myInput" /> 
<span class="validation-message" style="display: none;">This is not valid</span> 
0

要写入无效字符停止用户,或验证等领域,他的类型,你可以使用.onkeypress

document.getElementById(fieldId).onkeypress = onkeypressHandler; 

var onkeypressHandler = function (event) { 
    var eKey = event.charCode; 
    var str = String.fromCharCode(eKey); 
    var pattern = /[^0-9]/g; 
    var strTmp = str.replace(pattern, ""); 
    if (str!== strTmp) { 
     return false; 
    } 
    return true; 
} 

在这个例子中,唯一有效的字符是数字,如果按下的键不是数字,则该函数将返回false和密钥将被忽略。

也验证字段的用户输入完成后,您可以使用后.onchange

document.getElementById(fieldId).onchange= onChangeHandler; 
相关问题