我有一个适用于所有脏字段和无效字段的CSS类:
input.ng-dirty.ng-invalid, select.ng-dirty.ng-invalid, textarea.ng-dirty.ng-invalid{
border: 1px solid red;
}
然而,在提交时,我希望出现红色边框(以及我添加的其他任何内容)。
有没有办法让提交时所有字段变脏?或者将类应用于表格,例如" ng-formsubmitted" (或者什么)?
答案 0 :(得分:2)
您可以在提交时将表单设置为脏,然后在css选择器中使用它而不是单个元素。
<button ng-click="formName.$setDirty();doWhatever();">Save</button>
或在您的表单上,具体取决于您的设置方式:
<form name="formName" ng-submit="formName.$setDirty()">
http://docs.angularjs.org/api/ng/type/form.FormController
然后你的css选择器将是
.ng-dirty .ng-invalid {
...
}
答案 1 :(得分:0)
您可以在表单提交处理程序中添加类似的内容......
$('input').addClass("ng-dirty");
$('select').addClass("ng-dirty");
$('textarea').addClass("ng-dirty");
此代码基本上是将类ng-dirty
添加到所有表单字段中。
或者,如果你需要两个班级......
$('input').addClass("ng-dirty").addClass("ng-invalid");
$('select').addClass("ng-dirty").addClass("ng-invalid");
$('textarea').addClass("ng-dirty").addClass("ng-invalid");
AND ,正如下面的评论所指出的那样(感谢Ingo)......这三行可以合并为一行,如下所示:
$('input, select, textarea').addClass("ng-dirty").addClass("ng-invalid");
答案 2 :(得分:0)
当用户点击提交按钮时,您可以将表单设置为脏。
$setDirty();
将表单设置为脏状态。
可以调用此方法来添加&#39; ng-dirty&#39; class并将表单设置为脏状态(ng-&gt;脏类)。此方法也将传播到父表单。