Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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_Modal Dialog_Angular Ui Bootstrap_Blur_Uib - Fatal编程技术网

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
  };