Angularjs 取消按钮单击不';不完整
当我打开一个模式对话框并且没有做任何更改时,我点击取消按钮,我希望对话框关闭 但如果我对当前处于焦点的文本框进行了验证,那么当焦点移出文本框时,验证文本仍然会出现。上述行为可以在下面的例子中看到-Angularjs 取消按钮单击不';不完整,angularjs,modal-dialog,angular-ui-bootstrap,blur,uib,Angularjs,Modal Dialog,Angular Ui Bootstrap,Blur,Uib,当我打开一个模式对话框并且没有做任何更改时,我点击取消按钮,我希望对话框关闭 但如果我对当前处于焦点的文本框进行了验证,那么当焦点移出文本框时,验证文本仍然会出现。上述行为可以在下面的例子中看到- 同样,在上面的链接中,如果我单击按钮顶部附近的cancel按钮,则单击永远不会完成(尽管焦点已转移到按钮),并且模式对话框不会关闭 关于如何确保单击按钮完成,或者如果取消对话框,是否可以避免模糊事件的任何建议。您可以调用$ctrl.validate()内部$ctrl.ok()函数。因此,ng模糊
同样,在上面的链接中,如果我单击按钮顶部附近的cancel按钮,则单击永远不会完成(尽管焦点已转移到按钮),并且模式对话框不会关闭
关于如何确保单击按钮完成,或者如果取消对话框,是否可以避免模糊事件的任何建议。您可以调用
$ctrl.validate()
内部$ctrl.ok()
函数。因此,ng模糊也可以被删除
$ctrl.ok = function () {
$ctrl.validate ();
if(!$ctrl.textValue) {
$ctrl.invalidControl = true;
}
else
$uibModalInstance.close($ctrl.selected.item);
};
希望有帮助:)
工作打捞器:
下面的代码片段演示了如何进行表单验证。因此,由于您有许多字段,因此可以使用所需的验证来验证每个字段
验证示例
用户名:
用户名是必需的。
电子邮件:
电子邮件是必需的。
无效的电子邮件地址。
var-app=angular.module('myApp',[]);
app.controller('validateCtrl',函数($scope){
$scope.user='John Doe';
$scope.email='john。doe@gmail.com';
});
将validate函数移动到$ctrl.ok()中,并将其从视图中删除
$ctrl.ok = function () {
if(!$ctrl.validate())
$uibModalInstance.close($ctrl.selected.item);
else
return
};
这里是一个工作示例:但我也需要验证对失去焦点的控制。以我的实际形式,我有许多这样的控件需要验证。如果必须验证表单中的每个字段,可以使用表单验证。请详细说明表单验证,以及这对我的案例有何帮助。如果用户移动到下一个字段,我仍然无法提示用户,而不指定当前处于焦点的字段中的数据,但所有单击“确定”按钮时会显示错误。这提供了相同的功能我不想失去ng blur中的功能
$ctrl.ok = function () {
if(!$ctrl.validate())
$uibModalInstance.close($ctrl.selected.item);
else
return
};