Javascript 如何在编辑模式下打开对话框时禁用验证?
尝试在编辑模式下打开对话框时,将弹出验证消息和所需消息。但我需要实现的是,当在编辑模式下打开对话框时,一旦对话框打开,文本框就会包含值,但验证消息也会出现。如果文本框中已有值,如何删除该值 下面是我如何使用它的HTML代码示例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
<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:}