---
area: "Changes"
parent: "Changes"
url: "https://unpoly.com/changes/0.15.0"
released: "2016-01-05"
---
<nav aria-label="Unpoly docs">[All docs](https://unpoly.com/index.md) · [Changes](https://unpoly.com/changes.md)</nav>

# Version 0.15.0 (Released on January 05, 2016 with [13 commits](https://github.com/unpoly/unpoly/commits/v0.15.0))

## Compatible changes {#compatible-changes}

- New function [`up.autosubmit()`](https://unpoly.com/api/up.autosubmit.md) and selector [`[up-autosubmit]`](https://unpoly.com/api/up-autosubmit.md) to observe a form or field and submit the form when a value changes.
- [`up.observe()`](https://unpoly.com/api/up.observe.md) and [`[up-observe]`](https://unpoly.com/api/up-observe.md) can now be applied to `<form>` tags. The callback is run when any field in the form changes.
- New function [`up.browser.canPushState()`](https://unpoly.com/up.browser.canPushState) to detect if the browser supports `history.pushState`.
- New function [`up.browser.canCssTransition()`](https://unpoly.com/up.browser.canCssTransition) to detect if the browser supports animation with CSS transitions.
- New function [`up.browser.canInputEvent()`](https://unpoly.com/up.browser.canInputEvent) to detect if the browser supports the `input` event.
- Allow to [configure a default delay](https://unpoly.com/api/up.form.config.md) for [`up.observe()`](https://unpoly.com/api/up.observe.md).
- [Popups](https://unpoly.com/up.popup) now have events [`up:popup:open`](https://unpoly.com/up:popup:open), [`up:popup:opened`](https://unpoly.com/up:popup:opened), [`up:popup:close`](https://unpoly.com/up:popup:close) and [`up:popup:closed`](https://unpoly.com/up:popup:closed).
- The destructor returned by [`up.observe()`](https://unpoly.com/api/up.observe.md) now properly unregisters event listeners.

## Breaking changes {#breaking-changes}

- ⚠️ [`up.observe()`](https://unpoly.com/api/up.observe.md) now takes the callback function as a last argument. The callback can now longer be passed as a `.change` option.

