Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用AngularJS验证输入_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 使用AngularJS验证输入

Javascript 使用AngularJS验证输入,javascript,html,angularjs,Javascript,Html,Angularjs,我有一些要验证的输入字段。对于“电子邮件”输入,我已经完成了。对于“Phone”输入,我编写了一些代码来防止用户插入字符,但它不起作用。对于“密码”输入,用户必须输入至少8个字符,包括数字。我需要,如果用户插入错误的值,输入边框将变为红色 我该怎么做?这是我的密码 守则: app.directive('phoneNumber', function() { return { require: 'ngModel', link: function (scope, element,

我有一些要验证的
输入
字段。对于“电子邮件”输入,我已经完成了。对于“Phone”输入,我编写了一些代码来防止用户插入字符,但它不起作用。对于“密码”输入,用户必须输入至少8个字符,包括数字。我需要,如果用户插入错误的值,输入边框将变为红色

我该怎么做?这是我的密码

守则:

app.directive('phoneNumber', function() {
  return {
    require: 'ngModel',
    link: function (scope, element, attr, ngModelCtrl) {
      function fromUser(text) {
        var transformedInput = text.replace(/[^0-9]/g, '');
        console.log(transformedInput);
        if(transformedInput !== text) {
            ngModelCtrl.$setViewValue(transformedInput);
            ngModelCtrl.$render();
        }
        return transformedInput;
      }
      ngModelCtrl.$parsers.push(fromUser);
    }
  }; 
});
是防止用户插入字符的“电话”输入代码


致以最诚挚的问候

在我的示例中,如果用户键入字符“-”,则会发现一个输入错误^^

$('input[type=“text”]).keyup(函数(){
if($('input[type=“text”]').val().indexOf(“-”)!=-1){
$(this.css('border-color','red');
}
});



我已更新了您的代码。请检查以下代码段

我还测试了你的电话号码数字正则表达式,它工作正常。(您可以测试您的正则表达式,或使用任何其他在线正则表达式工具。)

var-app=angular.module(“myApp”,[]);
app.controller(“myCtrl”,函数($scope){
$scope.passwordVal=/^[a-zA-Z1-9]{8,}$//;//密码模式
});
输入{
填充:8px 20px;
利润率:8px 5px;
框大小:边框框;
边框:1px实心;
边界半径:4px;
}
输入无效{
边框颜色:红色!重要;
}

电话:
密码:
这是我问题答案的链接:

我的生活有了一些变化

“电话号码”的代码为:

$('PhoneNumber').bind('keypress',函数(e){
如果(如!=8){
如果((e.which<48)| |(e.which>57)){
e、 preventDefault();}
}
});
e.which!=8
用于接受退格键


感谢大家

使用表单验证。我已经有了,但它没有达到我的目标,谢谢。首先添加'novalidate'以禁用html5验证。谢谢,但我想阻止用户插入字符,例如,如果用户插入“a”,它将不会显示在输入中。谢谢,但我想例如,“-”无法在文本框中插入。没有被插入,但有一个警报。完成了,现在这应该是伟大的!但是我应该如何包括除数字以外的所有字符呢?完成后,您可以将不需要的字符放在禁用字符数组中。我认为这应该是一个更干净的代码,而不是在数组中键入所有禁用字符,但非常感谢您的帮助。
$('#PhoneNumber').bind('keypress', function(e){
       if(e.which != 8) {
         if ((e.which < 48) || (e.which > 57 )) {
           e.preventDefault(); }
        }
      });