我有文本框,如果输入的值需要使用一些regularrexpression进行验证 我需要在用户输入数据时验证值。 哪个适合的事件可以用于此?在文本框上使用onfocus事件的一些示例示例将很有帮助
答案 0 :(得分:0)
使用onKeypress或onKeyup。 初学者通常认为onChange会做你想要的,但只有当输入失去焦点时才会触发。 OnFocus是无关紧要的 - 即当盒子首先获得焦点时,而不是当用户键入时。
答案 1 :(得分:0)
通常,当文本输入失去焦点时,您会这样做,因此它将使用模糊事件。原因是在输入足够数量的字符之前,许多输入无效。当用户仍在键入有效字符串时,提出验证错误可能会非常烦人。例如,在进行电子邮件验证时,输入在输入@符号之前无效。请注意,您还需要验证提交表单的时间,以捕获字段从未有过焦点的情况。
使用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>
答案 2 :(得分: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;