And*_*ili 5 css sass javascript-framework primeng angular
我正在使用 PrimeNG 开发一个 Angular 项目,并且我将尝试正确设置某些无效表单字段的样式。
在我的表格中,我有这种类型的字段:
<input id="commessa" class="p-invalid" aria-describedby="commessa-help" formControlName="commessa" type="text" pInputText required/>
Run Code Online (Sandbox Code Playgroud)
与此 CSS 关联:
:host ::ng-deep {
.ng-invalid:not(form) {
border-left: 5px solid #a94442 !important; /* red */
border-color: #f44336 !important ;
}
}
Run Code Online (Sandbox Code Playgroud)
它工作正常:我的表单的无效文本字段具有我预期的红色边框。
然后我有这样的数字字段:
<p-inputNumber id="idOrdine" styleClass="test" formControlName="idOrdine"></p-inputNumber>
Run Code Online (Sandbox Code Playgroud)
对于这种类型的字段,我无法获得无效字段的红色边框(例如,如果我有一个需要的空p-inputNumber字段)。
我已经尝试了很多东西,但它不起作用。唯一改变我的边框颜色的是设置这个 CSS 规则:
.ui-inputtext {
border: 1px solid red;
}
Run Code Online (Sandbox Code Playgroud)
但这样它就将所有输入字段设置为红色边框。
仅在无效的p-inputNumber字段上设置红色边框的解决方案是什么?
**EDIT-1:检查 DOM 呈现的字段是:
<div _ngcontent-ugn-c193=""
class="col-10">
<p-inputnumber _ngcontent-ugn-c193=""
id="idOrdine"
styleclass="test"
formcontrolname="idOrdine"
ng-reflect-style-class="test"
ng-reflect-name="idOrdine"
class="ng-untouched ng-invalid ng-dirty">
<input pinputtext=""
class="ui-inputnumber-input ui-inputtext ui-corner-all ui-state-default ui-widget"
aria-valuenow="null">
<span ng-reflect-ng-class="[object Object]"
class="ui-inputnumber ui-widget">
<!--bindings={
"ng-reflect-ng-if": "false"
}-->
<!--bindings={
"ng-reflect-ng-if": "false"
}-->
<!--bindings={
"ng-reflect-ng-if": "false"
}-->
</span>
</p-inputnumber>
</div>
Run Code Online (Sandbox Code Playgroud)
与内部输入pinputtext标签相关的CSS是:
body .ui-inputtext {
font-size: 14px;
color: #333333;
background: #ffffff;
padding: 0.429em;
border: 1px solid #a6a6a6;
transition: border-color 0.2s, box-shadow 0.2s;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
Run Code Online (Sandbox Code Playgroud)
在这里更改(通过 Chrome 工具)边框颜色已更改...但我只能通过 Chrome 开发工具来完成...不能通过代码...
在全局样式文件中添加这些样式规则
\n.ui-inputtext.ng-dirty.ng-invalid , .ui-inputtext.ng-touched.ng-invalid{\n border: 1px solid red !important;\n background: rgba(255, 0, 0, 0.35);\n box-shadow: 0 0 5px 1px rgba(255, 0, 0, 0.2) inset !important;\n}\n\nRun Code Online (Sandbox Code Playgroud)\n更新了\xe2\xad\x90
\n如果我们使用 p-inputnumber 组件
\np-inputnumber.ng-dirty.ng-invalid .ui-inputtext , \np-inputnumber.ng-touched.ng-invalid .ui-inputtext {\n border: 1px solid red !important;\n background: rgba(255, 0, 0, 0.35);\n box-shadow: 0 0 5px 1px rgba(255, 0, 0, 0.2) inset !important;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n这
\nng-touched添加,这似乎是组件本身的错误 \xe2\x80\x8d
| 归档时间: |
|
| 查看次数: |
8946 次 |
| 最近记录: |