Input elements should have autocomplete attributes
JavascriptPhpJqueryGoogle ChromeJavascript Problem Overview
I am getting this message in the console I can't understand it. Please look into it
<!DOCTYPE html>
<html>
<head>
<title>registration page</title>
<script src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('form').submit(function(event){
"use strict";
var valid = true,
message = '';
$('.error').remove();
$('form input').each(function() {
var $this = $(this);
if(!$this.val()) {
message='';
var inputName = $this.attr('name');
valid = false;
message += 'Please enter your ' + inputName + '\n';
$(this).closest('div').append('<div class="error">'+message+'</div>');
}
})
if(!valid){
event.preventDefault();
}else{
$('form').serialize()
}
})
})
</script>
</head>
<body>
<form>
<div>
<label>Name</label>
<input type="text" name="name"><br>
</div>
<div>
<label>File</label>
<input type="file" name="file"><br>
</div>
<div>
<label>password</label>
<input type="password" name="password"><br>
</div>
<button type='submit'>Submit</button>
</form>
</body>
</html>
The problem is despite no error I keep getting this message
[DOM] Input elements should have autocomplete attributes (suggested: "current-password"):
I have been provided with a google link in console which take me to (More info: goo.gl/9p2vKq)
Javascript Solutions
Solution 1 - Javascript
Try changing
<input type="password" name="password">
to
<input type="password" name="password" autocomplete="on">
Autocomplete lets web developers specify what (if any) permission the user agent has to provide automated assistance in filling out form field values, as well as guidance to the browser as to the type of information expected in the field.
It's pretty powerful.
Solution 2 - Javascript
Turning off Autocomplete
You have the below options for working with errors of the below format Input elements should have autocomplete attributes thrown by the console by modifying:
<input type="password" name="password">
- Set the
autocomplete
attribute tooff
at the<form>
or<input>
which:- Enforces browser to NOT store any data
- Disables caching form data in the session history
<input type="password" name="password" autocomplete="off">
- Another way to prevent autofilling by the browser is:
The below suggestions are browser specific
<input type="password" name="password" autocomplete="new-password"> <!-- For Mozilla-->
<!-- or -->
<input type="password" name="password" autocomplete="current-password"> <!-- For Chrome-->
Solution 3 - Javascript
TypeScript 3.9 caused me to use autoComplete -- capital "C"
Solution 4 - Javascript
From Chromium Projects' Design Documents:
> #### Autocomplete attributes help password managers to infer the purpose of a field in a form, saving them from accidentally saving or autofilling the wrong data.
You can use the autoComplete
attribute on an HTML element that needs to be managed by a password manager for automatically filling its value. The value of autoComplete
attribute depends on the field about which you want to convey more information to the password manager. Consider the following examples:
- Current password field -
autoComplete="current-password"
- New password field -
autoComplete="new-password"
- Credit card field -
autoComplete="cc-number"
Solution 5 - Javascript
Its in chrome.. It is to ensure that browsers' and extensions' password management functionality can understand your site's sign-up, sign-in and change-password forms by enriching your HTML with a dash of metadata.
this might help you https://www.chromium.org/developers/design-documents/form-styles-that-chromium-understands
Solution 6 - Javascript
React with Bootstrap required me to use autoComplete with capital "C" as well.
Solution 7 - Javascript
I know that the question got answered, this is for those people who want to remove this warning message from console while using "react.js"
just add this in the input field
autoComplete="true"
here is the full one
<input type="password" className="form-control" placeholder="Password"
autoComplete="true"
name='password'
required={true} />