简体   繁体   English

模式属性验证在 html 输入中输入的文本的频率

[英]how frequently pattern attribute will be validating the text entered in html input

when i am doing a input field validation using pattern , how frequently the value will be validated .当我使用模式进行输入字段验证时,验证值的频率。 i would like to know whether it will validate on (keyup) or (change)我想知道它是否会在 (keyup) 或 (change) 上验证

for ex:例如:

<input type="email" [(ngModel)]="emailAddress" name="emailAddress" data-toggle="tooltip"
                    title="{{emailAddress}}" #email="ngModel" multiple
                    pattern="^(([a-zA-Z0-9_,.]*@*\w+([-+.']\w+)*\w+([-.]\w+)*\.\w+([-.]\w+)*)*([' '])*)*$"
                    class="form-control" />

i would like to know whether the text i enter will be validated on each keystroke ?我想知道我输入的文本是否会在每次击键时得到验证?

The pattern attribute is checked only upon submission the form or when you press enter on the input tag, so only on the enter key's stroke you might say.仅在提交表单时或在input标签上按enter键时,才会检查模式属性,因此您可能会说仅在enter键的笔画上。

If you want it to be validated on every keypress , keyup or onchange , you can set the corresponding attribute to validate the input like so:如果您希望在每个keypresskeyuponchange上对其进行验证,您可以设置相应的属性来验证输入,如下所示:

<input keyup="validate(this)" />

...

<script>
function validate(x)
{
    regex = /[a-zA-Z0-9]+/;
    window.alert(x.value.match(regex) == null);
}
</script>

If I understand correctly your issue, you are trying to check the value entered "real time".如果我正确理解您的问题,您正在尝试检查“实时”输入的值。

In the case, you could use input event to get value changed.在这种情况下,您可以使用input事件来更改值。

 // Add error message element after input. $('#input_email').after('<span class="error-message">Please write your message error here!</span>') $('#input_email').on('input', function (evt) { var $regex=/^(([a-zA-Z0-9_,.]*@*\\w+([-+.']\\w+)*\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*)*([' '])*)*$/; var value = evt.target.value; if (value.length === 0) { evt.target.className = '' return } var result = value.match($regex); if (result) { evt.target.className = 'valid' } else { evt.target.className = 'invalid' } })
 input.invalid + .error-message { display: initial; } .error-message { display: none; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input id="input_email" type="email" [(ngModel)]="emailAddress" name="emailAddress" data-toggle="tooltip" title="{{emailAddress}}" #email="ngModel" multiple pattern="^(([a-zA-Z0-9_,.]*@*\\w+([-+.']\\w+)*\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*)*([' '])*)*$" class="form-control" />

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM