最佳答案
我有一个表单,如果一个复选框为 false,那么它将使用 n- 必需的指令对文本输入强制执行验证。如果复选框为 true,则该字段将被隐藏,n- 需要被设置为 false。
问题是我还有一个正则表达式用于在输入上指定的验证,以及使用 ng- 模式角度指令。我遇到的问题是,如果一个用户填写了一个无效的电话号码,勾选框停用该输入(因此不需要进一步验证) ,表单将不允许提交,因为它是基于 ng 模式无效的。
我试图通过添加 ng-change 函数将输入模型设置为 null 来解决这个问题,但是 ng-pattern 和因此字段在复选框的初始设置上仍然被设置为无效,为 false。然而,如果我取消选中框,将所有内容设置回初始表单加载,然后再次选中框,表单是有效的并且能够提交。我不知道我错过了什么。下面是我到目前为止的 ng-change 代码:
var phoneNumberRegex = /^\(?(\d{3})\)?[ .-]?(\d{3})[ .-]?(\d{4})$/;
$scope.phoneNumberPattern = phoneNumberRegex;
$scope.removeValidation = function() {
if ($scope.cell._newUser === false) {
$scope.request._number = '';
$scope.phoneNumberPattern = /[0-9a-zA-Z]?/;
} else {
$scope.phoneNumberPattern = phoneNumberRegex;
}
};