以下行的正确方法是什么?
ng-pattern="(true)? apply-pattern : dont-apply-pattern"
我的问题是,我隐藏了ng-pattern
字段,当它不需要时,但仍然不允许表单有效。
我尝试禁用该字段,但没有运气。
代码是:
<input type="text" ng-hide="param.paramType == 'java.lang.boolean'"
ng-pattern="param.paramValidatePattern" class="form-control input-sm" name="paramV"
ng-model="param.paramValue" ng-required="param.paramType != 'java.lang.boolean'"
ng-disabled="param.paramType == 'java.lang.boolean'" />
答案 0 :(得分:0)
在您的版本中查看此特殊条件是否适合您...
<form name='myFormName'ng-submit="submitFormFunction()">
<input type="text" name="mySpecialPatternField" .../>
在JS代码(指令||控制器)
$scope.submitFormFunction = function(){
if( specialConditionIsMet ){
// then we don't want the pattern input to matter in form validation
$scope.myFormName.mySpecialPatternField.$setValidity('pattern', true);
}
}
可能需要是假的,我不记得了,但是它们与你认为应该是的角度交换。
如果您使用$ setValidity,并且您使用了多个验证
对于那个输入(除了模式,也称为requierd)你将需要遍历
$scope.myFormName.mySpecialPatternField.$error
获取密钥的对象,然后将其中的每一个设置为true;这将为每个错误将$valid
设置为true,从而将表单设置为$valid = true
。
但是,您的版本可能会或可能不会提供此功能。检查......