表单验证在 Firefox 中运行良好,但在 Internet Explorer 9 中失败。
我为动态生成的必填字段使用了这个 span 标签来验证空字段。
<span ng-show="hasError('"+fieldName+"', 'required')"></span>
$scope.hasError= function(field, validation){
if(validation){
return ('$scope.myForm.field.$dirty' && '$scope.myForm.field.$error[validation]') || ($scope.submitted && '$scope.myForm.field.$error[validation]');
}
return ('$scope.myForm.field.$dirty' && '$scope.myForm.field.$invalid') || ($scope.submitted && '$scope.myForm.field.$invalid');
};
最初我有
$scope.hasError = function(field, validation){
if(validation){
return ($scope.myForm[field].$dirty && $scope.myForm[field].$error[validation]) || ($scope.submitted && $scope.myForm[field].$error[validation]);
}
return ($scope.myForm[field].$dirty && $scope.myForm[field].$invalid) || ($scope.submitted && $scope.myForm[field].$invalid);
};
这给了我
TypeError:无法获取属性“$dirty”的值:对象为空或未定义
在 IE9 控制台中,将其更改为上面发布的代码后,TypeError 消失了,但文本框周围的红色边框仍然没有出现在 IE9 中,以提醒用户有空字段。
应该针对 IE9 执行哪些操作才能验证空字段?
或者有没有其他方法可以验证在 Firefox 和 IE 中动态生成的表单字段?