Javascript 如何在编辑模式下打开对话框时禁用验证?

Javascript 如何在编辑模式下打开对话框时禁用验证?,javascript,jquery,html,angularjs,angularjs-directive,Javascript,Jquery,Html,Angularjs,Angularjs Directive,尝试在编辑模式下打开对话框时,将弹出验证消息和所需消息。但我需要实现的是,当在编辑模式下打开对话框时,一旦对话框打开,文本框就会包含值,但验证消息也会出现。如果文本框中已有值,如何删除该值 下面是我如何使用它的HTML代码示例 <div class="form-group col-lg-6" show-errors> <label for="firstName">First Name</label> &l

尝试在编辑模式下打开对话框时,将弹出验证消息和所需消息。但我需要实现的是,当在编辑模式下打开对话框时,一旦对话框打开,文本框就会包含值,但验证消息也会出现。如果文本框中已有值,如何删除该值

下面是我如何使用它的HTML代码示例

<div class="form-group col-lg-6" show-errors>
    <label for="firstName">First Name</label>
    <input type="text" class="form-control" id="firstName" ng-model="firstName" name="firstName" placeholder="First Name" style="width: 74%;" required>
    <p class="help-block" ng-if="EditUserUserform.firstName.$error.required">Required</p>
</div>
<div class="form-group col-lg-6" show-errors>
    <label for="lastName">Last Name</label>
    <input type="text" class="form-control" id="lastName" ng-model="lastName" name="lastName" placeholder="Last Name" style="width: 74%;" required>
<p class="help-block" ng-if="EditUserUserform.lastName.$error.required">Required</p>
</div>
下面是我在正常模式下打开表单时的图像

下图显示了我在编辑模式下打开时的状态


该值已经存在于其中,但一旦对话框打开,它就会显示验证消息。

我根本不知道angular,这是假设您可以访问上下文,了解它是否处于编辑模式,但看起来您可以在此处执行某些操作:

    inputNgEl.bind('blur', function() {
      //only check if not edit mode
      if (!edit) {
        el.toggleClass('has-error', formCtrl[inputName].$invalid);
      }
    });

除非angular有自己的钩子来实现同样的功能,否则我会说你可以这样做。

通常,如果输入字段没有被触摸,字段的值不是由用户填充的,但是通过使用控制器,
$pristine
将是
真的
。因此,您可以通过首先验证
$pristine
值来解决此问题:

    // only apply the has-error class after the user leaves the text box
    inputNgEl.bind('blur', function() {
      // Only do this if and only if the field has been touched and the value is invalid
      el.toggleClass('has-error', !formCtrl[inputName].$pristine && formCtrl[inputName].$invalid);
    });
或者,您可以使用
$dirty
值,如果未触及该字段,该值将为
false

      el.toggleClass('has-error', formCtrl[inputName].$dirty && formCtrl[inputName].$invalid);

指令('showErrors',函数(e){e.preventDefault();}请尝试,我不确定。谢谢您的快速回复,但它不起作用。我很好奇,有没有办法检查代码中的编辑状态?或者,在编辑模式下,您可以给输入一个额外的样式。例如,在编辑中
,然后在您的样式中,您可以使用类似
.in-edit.has-er的内容覆盖错误样式ror{background:}