有没有办法为语义 UI React Dropdown 提供 html "name" 属性,使其表现得像表单提交上的普通输入元素?
Is there a way to give a Semantic UI React Dropdown the html "name" attribute so it will behave like a normal input element on a form submit?
对于普通 html 元素,您可以通过表单获取该元素的值。
function handleSubmit(event) {
event.preventDefault()
const formData = new FormData(e.target)
console.log(formData.get("test"))
// logs the value of the html element with the name "test"
}
<form onSubmit={handleSubmit}>
<input name="test" />
<button type="submit">Submit</button>
</form>
表单将分配一个键“测试”表单提交时输入中的任何内容的值。
我的问题:有没有办法让这个功能与语义 UI 下拉列表一起使用?
下面是我认为可行的理想情况,但我知道行不通,因为该组件是其他元素的包装器。
function handleSubmit(event) {
event.preventDefault()
const formData = new FormData(e.target)
console.log(formData.get("test"))
// logs the value of the html element with the name "test"
}
<form onSubmit={handleSubmit}>
<Dropdown name="test" selection options={
[{key: '1', text: 'text', value: '1'}]
}/>
<button type="submit">Submit</button>
</form>
在提交表单时,无论在该下拉列表中选择什么值,都会将其放入 formData 中名为“test”的键中。如果未选择任何值,则会为键“test.”赋予未定义的值。
这可能吗?我有另一个使用基本 html 选择器的工作,但不想更改很多已经编写的代码。
可以,但是您需要解构下拉组件。
const [open, setOpen] = useState(false)
<Dropdown
trigger={<Button onClick={() => setOpen(true)}>Open</Button>}
onClose={() => setOpen(false)}
icon={null}
open={open}
simple
>
<Dropdown.Menu>
... add the options with the "name" tag ...
</Dropdown.Menu>
</Dropdown>
对于普通 html 元素,您可以通过表单获取该元素的值。
function handleSubmit(event) {
event.preventDefault()
const formData = new FormData(e.target)
console.log(formData.get("test"))
// logs the value of the html element with the name "test"
}
<form onSubmit={handleSubmit}>
<input name="test" />
<button type="submit">Submit</button>
</form>
表单将分配一个键“测试”表单提交时输入中的任何内容的值。
我的问题:有没有办法让这个功能与语义 UI 下拉列表一起使用?
下面是我认为可行的理想情况,但我知道行不通,因为该组件是其他元素的包装器。
function handleSubmit(event) {
event.preventDefault()
const formData = new FormData(e.target)
console.log(formData.get("test"))
// logs the value of the html element with the name "test"
}
<form onSubmit={handleSubmit}>
<Dropdown name="test" selection options={
[{key: '1', text: 'text', value: '1'}]
}/>
<button type="submit">Submit</button>
</form>
在提交表单时,无论在该下拉列表中选择什么值,都会将其放入 formData 中名为“test”的键中。如果未选择任何值,则会为键“test.”赋予未定义的值。
这可能吗?我有另一个使用基本 html 选择器的工作,但不想更改很多已经编写的代码。
可以,但是您需要解构下拉组件。
const [open, setOpen] = useState(false)
<Dropdown
trigger={<Button onClick={() => setOpen(true)}>Open</Button>}
onClose={() => setOpen(false)}
icon={null}
open={open}
simple
>
<Dropdown.Menu>
... add the options with the "name" tag ...
</Dropdown.Menu>
</Dropdown>