Skip to content

compat: ATTR_FALSE_VALUE incorrectly removes value attribute on inputs #13205

Open
@markrian

Description

@markrian

Vue version

@vue/compat@3.5.13

Link to minimal reproduction

https://codepen.io/markrian/pen/NPPKOqm

Steps to reproduce

  1. Use @vue/compat with the ATTR_VALUE_FALSE compat flag enabled.
  2. Bind a false value to an input's value attribute.
  3. Note that the value attribute is removed from the input.
  4. If it's a type=text input, the value property is correctly coerced to "false".
  5. If it's a type=hidden input, the value property in incorrectly coerced to "".

What is expected?

The ATTR_VALUE_FALSE should not affect behaviour of inputs that's consistently across Vue 2.x and Vue 3.x.

What is actually happening?

The ATTR_VALUE_FALSE is overzealous and also drops falsy value attributes on inputs.

System Info

N/A

Any additional comments?

Note that both Vue 2.7.16 and Vue 3.5.13 behave the same way - the expected way. It's only the compat build with the ATTR_FALSE_VALUE flag that isn't behaving as expected:

Metadata

Metadata

Assignees

No one assigned

    Labels

    🔨 p3-minor-bugPriority 3: this fixes a bug, but is an edge case that only affects very specific usage.scope: v2 compat

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions