61

I have recently developed an HTML5 jQuery plugin and I'm having trouble removing the red border on required fields in FF4 beta.

I noticed that FF applies this border/outline in required fields and removes it when value is set. The problem is that I am using the value attribute to emulate the placeholder attr in older browsers. Therefore I need all inputs with this feature to not show the red line.

You can see the problem in the demo page of the plugin here

kewlashu
  • 1,099
  • 10
  • 18
matmancini
  • 686
  • 1
  • 5
  • 5

5 Answers5

111

There's some new pseudo selectors for some of the new HTML5 form features available to you in CSS. You're probably looking for :invalid. The following are all from the MDC Firefox 4 docs:

  • The :invalid CSS pseudo-class is applied automatically to elements whose contents fail to validate according to the input's type setting

  • The :-moz-submit-invalid pseudo-class is applied to the submit button on form fields when one or more form fields doesn't validate.

  • The :required pseudo-class is now automatically applied to fields that specify the required attribute; the :optional pseudo-class is applied to all other fields.

  • The :-moz-placeholder pseudo-class has been added, to let you style placeholder text in form fields.

  • The :-moz-focusring pseudo-selector lets you specify the appearance of an element when Gecko believes the element should have a focus indication rendered.

Connor Pearson
  • 63,902
  • 28
  • 145
  • 142
jason
  • 8,918
  • 2
  • 37
  • 43
  • 2
    i set up the -moz-mox-shadow property to 'none'. – matmancini Sep 28 '10 at 02:14
  • 27
    You should really check his answer as "the answer", and give him an up arrow, that's how this site works. Doing that would be a big thanks :D – Ammi J Embry Sep 28 '10 at 02:34
  • There's also the `:-moz-ui-invalid` pseudo-class, which applies in a subset of cases for `:invalid`. Gecko uses it and applies a red glow using the `box-shadow` property – S. Esteves Dec 09 '19 at 02:36
83

To be more specific you need to apply that style to the input control.

input:invalid {
    box-shadow: none;
}
vsync
  • 118,978
  • 58
  • 307
  • 400
WVDominick
  • 2,074
  • 15
  • 17
49

use this code as Quick and simple solution

:invalid {
  box-shadow: none;
}

:-moz-submit-invalid {
  box-shadow: none;
}

:-moz-ui-invalid {
  box-shadow:none;
}

Reference:- https://developer.mozilla.org/en-US/docs/Web/CSS/:invalid

Mo.
  • 26,306
  • 36
  • 159
  • 225
0

Please try this,

$("form").attr("novalidate",true);

for your form in your global .js file or in header section.

Anoop Velluva
  • 329
  • 2
  • 9
0

Wrap your required input into a form with novalidate attribute

<form novalidate>
    <input required>
</form>
iamandrewluca
  • 3,411
  • 1
  • 31
  • 38