RequiredFieldValidator: come eliminare il colore del carattere rosso predefinito
-
03-07-2019 - |
Domanda
Non riesco a cambiare il colore predefinito del validatore di campo richiesto. Nella fonte è:
<span class="required">*</span>
<asp:RequiredFieldValidator ID="valReq_txtTracks" runat="server"
ControlToValidate="txtTracks"
Display="Dynamic" />
Ecco cosa ho nel mio file .skin:
<asp:RequiredFieldValidator runat="server"
CssClass="error-text"
ErrorMessage="required" />
Nella fonte renderizzata vedo:
<span class="required">*</span>
<span id="ctl00_ctl00_cphContent_cphContent_valReq_txtTracks" class="error-text" style="color:Red;display:none;">required</span>
Nota il " style = color: Red; " ;. Deve andare. Non posso ignorarlo con una classe CSS perché è CSS incorporato. Cosa devo fare?
Soluzione
Esiste un RequiredFieldValidator.ForeColor proprietà che puoi impostare per controllare il colore. Tieni presente che se desideri impostare il colore in CSS, devi impostare ForeColor = " " per cancellarlo dal controllo.
Altri suggerimenti
Conosco questo vecchio thread, ma mi sono imbattuto in questo un altro giorno. È strano che l'impostazione del foglio di stile non prevalga sul colore del testo del validatore. Nel mio caso, avevo un sacco di validatori diversi e validatori estesi per i quali volevo sovrascrivere il colore del testo, quindi invece di un file di temi e skin, ho creato un adattatore di controllo personalizzato che gestisce il rendering del controllo BaseValidator. All'interno del metodo di rendering, ho appena impostato ForeColor = Color.Empty
. Speriamo che questo aiuti altre persone che si sono imbattute in questa situazione e vogliono sovrascrivere il colore del testo per tutti i tipi di validatori (campo obbligatorio, espressione regolare, confronto, ...).
Hai provato ad aggiungere l'attributo di stile con una stringa vuota nel file skin:
<asp:RequiredFieldValidator runat="server"
CssClass="error-text"
style=""
ErrorMessage="required" />
Ho letto da qualche parte per usare il tag! important nella tua classe css per sovrascrivere il css inline ...
L'utilizzo di ! important
sembra funzionare bene in Firefox e IE, ma per qualche motivo non in Google Chrome ... niente di che, la condivisione di Chrome è ancora molto bassa.
.form_error
{
font: bold 15px arial black,arial,verdana,helvetica !important;
color: #ff0000 !important;
}