gpt4 book ai didi

css - 如何通过CSS设置无效p-inputNumber PrimeNg表单组件的红色边框?

转载 作者:行者123 更新时间:2023-12-05 02:05:22 25 4
gpt4 key购买 nike

我正在使用 PrimeNG 开发一个 Angular 元素,我将尝试为一些无效的表单字段正确设置样式。

在我的特定表格中,我有这种类型的字段:

<input id="commessa" class="p-invalid" aria-describedby="commessa-help" formControlName="commessa" type="text" pInputText required/>

与此 CSS 关联:

:host ::ng-deep {

.ng-invalid:not(form) {
border-left: 5px solid #a94442 !important; /* red */
border-color: #f44336 !important ;
}

}

它工作正常:我的表单的无效文本字段如我所料具有红色边框。

然后我有这样的数字字段:

<p-inputNumber id="idOrdine" styleClass="test" formControlName="idOrdine"></p-inputNumber>

对于这种类型的字段,我无法为无效字段获取红色边框(例如,如果我有一个空的 p-inputNumber 字段是必需的)。

我尝试了很多方法,但都没有用。唯一改变我的边框颜色的是设置了这个 CSS 规则:

.ui-inputtext {
border: 1px solid red;
}

但在这种方式下,它将所有输入字段设置为红色边框。

仅在无效的 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>

与内部 input 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;
}

在这里(通过 Chrome 工具)更改边框颜色...但我只能通过 Chrome 开发工具...而不是通过代码...

最佳答案

在全局样式文件中添加这些样式规则

.ui-inputtext.ng-dirty.ng-invalid , .ui-inputtext.ng-touched.ng-invalid{
border: 1px solid red !important;
background: rgba(255, 0, 0, 0.35);
box-shadow: 0 0 5px 1px rgba(255, 0, 0, 0.2) inset !important;
}

已更新 ⭐

如果我们使用 p-inputnumber 组件

p-inputnumber.ng-dirty.ng-invalid .ui-inputtext , 
p-inputnumber.ng-touched.ng-invalid .ui-inputtext {
border: 1px solid red !important;
background: rgba(255, 0, 0, 0.35);
box-shadow: 0 0 5px 1px rgba(255, 0, 0, 0.2) inset !important;
}

the ng-touched not added even when you enter and leave it that seem an error from the component itself 🐱‍👤

demo 🚀🚀

关于css - 如何通过CSS设置无效p-inputNumber PrimeNg表单组件的红色边框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63603197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com