Текстовое поле SMUI sveltekit всегда равно нулю при отправке формы
Я только начал использовать SMUI и sveltekit и столкнулся с проблемой. . .
Я использую компонент Textfield в форме входа, и это не работает:
<form method="post">
<Textfield variant="outlined" bind:value={username} label="Username"></Textfield>
<Textfield type="password" variant="outlined" bind:value={password} label="Password">
<Button type="submit">Login</Button>
</form>
Какие публикации на странице с этим кодом:
export const actions = {
default: async ({ cookies, request }) => {
const data = await request.formData()
const username = data.get('username')
const password = data.get('password')
}
}
имя пользователя и пароль равны нулю при отправке.
Чтобы это работало, я вставляю «теневые» скрытые поля.
<form method="post">
<Textfield variant="outlined" bind:value={username} label="Username"></Textfield>
<input type="hidden" name="username" value={username}>
<Textfield type="password" variant="outlined" bind:value={password} label="Password">
<input type="hidden" name="password" value={password}>
<Button type="submit">Login</Button>
</form>
И затем я получаю значения для имени пользователя и пароля. Я предполагаю, что мне не нужно этого делать - что я делаю неправильно?
Редактировать 2022-10-17 Было предложено добавить параметр «имя» в текстовые поля следующим образом:
<Textfield variant="outlined" value="" name="username"></Textfield>
<Textfield type="password" variant="outlined" value="" name="password"></Textfield>
Это также не работает - когда значения приходят для формы, они оба равны нулю.
Другие идеи?
2 ответа
Вы можете указать имя вложенного элемента ввода следующим образом:
<Textfield input$name="username" ... />
Вы можете создать обычное поле ввода и пометить его как скрытое, а затем установить значение с двусторонней привязкой:
<Select variant="filled" bind:value={selectedUserId} label="User">
<Option value="" />
{#each usersList as user}
<Option value={user.id}>{user.firstName} {user.lastName}</Option>
{/each}
</Select>
<input hidden name="user-select" value={selectedUserId} />