Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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
Angularjs 如何自定义角度数输入验证_Angularjs - Fatal编程技术网

Angularjs 如何自定义角度数输入验证

Angularjs 如何自定义角度数输入验证,angularjs,Angularjs,我使用的指令验证数字输入框。我想改变它以适应我的需要。现在,它允许我输入数字或文本,并在单击按钮时抛出错误消息。它还触发该函数。我希望它在输入文本时立即抛出错误消息,我还希望禁用按钮,直到两个输入都有效 总之,我需要在输入任何文本时立即触发错误消息。在两个字段都有效之前,需要禁用该按钮 <form class="form-horizontal"> <div class="form-group"> <div class="col

我使用的指令验证数字输入框。我想改变它以适应我的需要。现在,它允许我输入数字或文本,并在单击按钮时抛出错误消息。它还触发该函数。我希望它在输入文本时立即抛出错误消息,我还希望禁用按钮,直到两个输入都有效

总之,我需要在输入任何文本时立即触发错误消息。在两个字段都有效之前,需要禁用该按钮

<form class="form-horizontal">
        <div class="form-group">
            <div class="col-md-12">
                <label for="inputEmail3" class="control-label">Price</label>
                <input class="form-control input-sm" to-number id="Price" type="number" ng-model="customSubjectProperty.price" ng-pattern=" /^\d+$/" placeholder="Price">
            </div>
        </div>
        <div class="form-group">
            <div class="col-md-12">
                <label class="control-label">Sqft</label>
                <input class="form-control input-sm" to-number id="Sqft" type="number" ng-model="customSubjectProperty.sqft" ng-keypress="chartController.newInputKeyPress()" ng-pattern="/^\d+$/" placeholder="Sqft">
            </div>
        </div>
        <div class="form-group">
            <div class="col-md-12" style="margin-top:12px">
                <button class="btn btn-primary btn-block btn-sm" ng-click="chartController.addSubjectPoint(customSubjectProperty)" ng-enter="chartController.addSubjectPoint(customSubjectProperty)">Add Point</button>
            </div>
        </div>
    </form>

app.directive('toNumber', function () {
return {
    require: 'ngModel',
    link: function (scope, elem, attrs, ctrl) {
        ctrl.$parsers.push(function (value) {
            return parseFloat(value || '');
        });
    }
};

价格
平方英尺
加点
应用指令('toNumber',函数(){
返回{
要求:'ngModel',
链接:函数(范围、元素、属性、ctrl){
ctrl.$parsers.push(函数(值){
返回parseFloat(值| |“”);
});
}
};

}))

您的问题是什么?指令代码在哪里?我将使用允许的正则表达式定义ng模式,并使用角度内置验证显示错误。这将在焦点丢失时触发错误。如果这是您需要的即时反馈,您可能应该在key up$(elem)上执行某些操作。在('keyup',callback)上,在指令内部,只需记住执行apply如何将其放入代码中?@texas697在指令内部链接中
app.directive('toNumber', function () {
return {
require: 'ngModel',
link: function (scope, elem, attrs, ctrl) {
    ctrl.$parsers.push(function (value) {
    $(elem).on('keyup',callback), 
        return parseFloat(value || '');
        $scope.apply()
    });
   }
};