p-input-password can be integrated into a form in two ways: controlled or uncontrolled, depending on your
needs.value property and input event to
keep it in sync with your application logic. This approach is ideal for complex forms or when using a form library. Note
that the component will still always update its internal value automatically when interacted with.<input type="password" />, automatically
manages its own state, and includes its value in form submissions through the
Form section in the
<!doctype html>
<html lang="en" class="scheme-light-dark">
<head>
<title></title>
</head>
<body class="bg-canvas">
<form class="flex flex-col gap-fluid-sm">
<p-input-password name="myInputPassword" label="Some Label" toggle></p-input-password>
<div class="flex gap-fluid-sm">
<p-button type="submit">Submit</p-button>
<p-button type="reset">Reset</p-button>
</div>
<p-text>Last submitted data: </p-text>
</form>
<script>
const debugElement = document.querySelector('p-text');
const form = document.querySelector('form');
form.addEventListener('submit', (e) => {
e.preventDefault();
const formData = new FormData(form);
debugElement.innerText = `Last submitted data: ${formData.get('myInputPassword')}`;
});
</script>
</body>
</html>toggle="true".<!doctype html>
<html lang="en" class="scheme-light-dark">
<head>
<title></title>
</head>
<body class="bg-canvas">
<p-input-password label="Some label" name="some-name" toggle="true"></p-input-password>
<script>
</script>
</body>
</html>label, description or message need markup such as a link. Do not set the corresponding
host property at the same time, because properties take precedence. Named slots only accept
label, description and message, you can also use label-after for content that should appear after the
label but is not part of the label itself, such as an external link or popover.Attention
disabled/loading state, slotted focusable UI elements (e.g. a) will still receive keyboard focus. Add tabindex="-1" to those UI elements.label-after slot is not affected by a disabled/loading state at all.<!doctype html>
<html lang="en" class="scheme-light-dark">
<head>
<title></title>
</head>
<body class="bg-canvas">
<p-input-password state="error">
<span slot="label">
Some label with a
<a href="https://designsystem.porsche.com" class="underline">
link
</a>
and a "label-after" slot.
</span>
<p-popover slot="label-after">
Some Popover content with a
<a href="https://designsystem.porsche.com" class="underline">
link
</a>
.
</p-popover>
<span slot="description">
Some description with a
<a href="https://designsystem.porsche.com" class="underline">
link
</a>
.
</span>
<span slot="message">
Some error message with a
<a href="https://designsystem.porsche.com" class="underline">
link
</a>
.
</span>
</p-input-password>
<script>
</script>
</body>
</html>