Form validation

Method of setting required fields and field types without requiring JavaScript. This includes preventing forms from being submitted when appropriate, the checkValidity() method as well as support for the :invalid, :valid, and :required CSS pseudo-classes.

Spec https://html.spec.whatwg.org/multipage/forms.html#client-side-form-validation
Status WHATWG Living Standard
IE Edge Firefox Chrome Safari Opera
      98    
    95 97    
    94 96 TP  
11 95 93 95 15 80
10 94 92 94 14.1 79
9 93 91 93 14 78
8 92 90 92 13.1 77
Show all
7 91 89 91 13 76
6 90 88 90 12.1 75
5.5 89 87 89 12 74
  88 86 88 11.1 73
  87 85 87 11 72
  86 84 86 10.1 71
  85 83 85 10 (1) 70
  84 82 84 9.1 (1) 69
  83 81 83 9 (1) 68
  81 80 81 8 (1) 67
  80 79 80 7.1 (1) 66
  79 78 79 7 (1) 65
  18 77 78 6.1 (1) 64
  17 76 77 6 (1) 63
  16 75 76 5.1 (1) 62
  15 74 75 5 (1) 60
  14 73 74 4 58
  13 72 73 3.2 57
  12 71 72 3.1 56
    70 71   55
    69 70   54
    68 69   53
    67 68   52
    66 67   51
    65 66   50
    64 65   49
    63 64   48
    62 63   47
    61 62   46
    60 61   45
    59 60   44
    58 59   43
    57 58   42
    56 57   41
    55 56   40
    54 55   39
    53 54   38
    52 53   37
    51 52   36
    50 51   35
    49 50   34
    48 49   33
    47 48   32
    46 47   31
    45 46   30
    44 45   29
    43 44   28
    42 43   27
    41 42   26
    40 41   25
    39 40   24
    38 39   23
    37 38   22
    36 37   21
    35 36   20
    34 35   19
    33 34   18
    32 33   17
    31 32   16
    30 31   15
    29 30   12.1
    28 29   12
    27 28   11.6
    26 27   11.5
    25 26   11.1
    24 25   11
    23 24   10.6
    22 23   10.5
    21 22   10.0-10.1
    20 21   9.5-9.6
    19 20   9
    18 19    
    17 18    
    16 17    
    15 16    
    14 15    
    13 14    
    12 13    
    11 12    
    10 11    
    9 10    
    8 9    
    7 8    
    6 7    
    5 6    
    4 5    
    3.6 4    
    3.5      
    3      
    2      
Safari on iOS Opera Mini Android Browser Blackberry Browser Opera Mobile Android Chrome Android Firefox IE Mobile Android UC Browser Samsung Internet QQ Browser Baidu Browser KaiOS Browser
15 all (3) 94 10 64 94 92 11 (2) 12.12 15.0 10.4 7.12 2.5 (1)
14.5-14.8   4.4.3-4.4.4 7 (1) 12.1     10 (2)   14.0      
14.0-14.4   4.4 (1)   12         13.0      
13.4-13.7   4.2-4.3 (1)   11.5         12.0      
Show all
13.3   4.1 (1)   11.1         11.1-11.2      
13.2   4 (1)   11         10.1      
13.0-13.1   3   10         9.2      
12.2-12.5   2.3             8.2      
12.0-12.1   2.2             7.2-7.4      
11.3-11.4   2.1             6.2-6.4      
11.0-11.2                 5.0-5.4      
10.3                 4      
10.0-10.2 (1)                        
9.3 (1)                        
9.0-9.2 (1)                        
8.1-8.4 (1)                        
8 (1)                        
7.0-7.1 (1)                        
6.0-6.1 (1)                        
5.0-5.1 (1)                        
4.2-4.3 (1)                        
4.0-4.1 (1)                        
3.2                        

Notes

  1. Partial support refers to lack of notice when form with required fields is attempted to be submitted.

  2. Partial support in IE10 mobile refers to lack of warning when blocking submission.

  3. Partial support in Opera Mini refers to only supporting the CSS pseudo classes.

Bugs

  • IE10 and 11 have a problem validating number fields in combination with the step attribute and certain values

  • In Chrome (tested in 45) inputs marked as disabled or hidden while also marked as required are incorrectly being considered for constraint validation. https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled

  • IE & Edge do not support :valid on form elements. Firefox<51 seemed to only match :valid on forms after child element values have changed from an invalid to valid state; see bug #1285425.

Resources

Data by caniuse.com
Licensed under the Creative Commons Attribution License v4.0.
https://caniuse.com/form-validation