bug report or feature request: form filling should work if not all fields are present

(If the following is working as intended, consider this a feature request. Otherwise, consider it a bug report)

Problem: If the web form details for a site contain any fields that are (1) not marked as the username or password, and (2) are not present on the page, then none of the non-username/non-password fields are filled. Only fields marked as username or password are still filled.

To reproduce, take this HTML:

<!DOCTYPE html>
<html>
    <head><title>Form Test</title></head>
    <body>
        <form method="POST">
            f1: <input name="f1" id="f1" type="text"><br/>
            f2: <input name="f2" id="f2" type="text"><br/>
            f3: <input name="f3" id="f3" type="text"><br/>
            <input type="submit">
        </form>
    </body>
</html>

and put it on a web server somewhere. Visit it in your browser, fill in values for the three form fields, and tell 1Password to save a new login. Verify that 1Password has saved the login, and that it correctly can fill the form.

Then edit the saved login in 1Password, and add a fourth field, "f4" with some value.

1Password will no longer fill in the form.

Impact: if several sites share the same password, it can be awkward in 1Password. They clutter the duplicate password search, and when the shared password changes you have to update multiple entries. A common workaround is to make a single entry for all the sites, with multiple URLs, and turn off auto-submit.

Because of the "do not fill the form if any saved field is missing" behavior, this workaround does not work right if any of the sites have form fields you want to save that do not appear on all the sites.

Suggested fix or enhancement: Either make it ignore missing fields, or add a new kind, "optional", to the current "username/password/other" options. A field marked "optional" would simply be ignored is not present.

Note: I'm reporting this for 1Password 6 on Mac, but the same behavior occurs on 1Password 4 on Windows and whatever the latest iOS version is.


1Password Version: 6.8.8
Extension Version: 4.7.0.90
OS Version: macOS 10.13.4
Sync Type: dropbox

Comments

  • littlebobbytables
    littlebobbytables
    1Password Alumni

    Hi @tzs,

    What you're seeing is the intended behaviour. For 1Password to fill anything more than just the username and password field the page must be a match for the one that was saved. It's a cautious approach to ensure we don't start filling anything we shouldn't.

    Your need is quite specialised as I'm sure you'll agree but there still might be a way to get it to work, especially given you're clearly comfortable with HTML.

    Save an entirely new Login item, not from inside the browser but from the main 1Password window. This is important and you can't duplicate an existing Login item either, it has to be a new item from inside the main 1Password window. Add the relevant username, password and URLs for the various sites you want it to match to.

    Now, to add more fillable fields edit the Login item and click the show web form details button. For each field you wish to add, set the field label to the ID attribute of the HTML input field you want it to fill into (name attribute works as well if they don't have an ID) and ensure the field type matches the field on the page. Now try filling on the page that requires the third plus fields. What fields fill? It may be required to change the default field labels for the username and password as well but we'll have to see.

    I'll be interested to hear if this works or not.

This discussion has been closed.