Compare commits

..

1 Commits

Author SHA1 Message Date
huanghuoguoguo
e5d71597f1 fix(survey): prevent option controls from submitting forms 2026-06-14 21:17:18 +08:00

View File

@@ -310,6 +310,7 @@ function SingleSelectField({
{options.map((opt) => ( {options.map((opt) => (
<div key={opt.id}> <div key={opt.id}>
<button <button
type="button"
onClick={() => onChange(opt.id)} onClick={() => onChange(opt.id)}
className={`w-full text-left text-sm px-3 py-2 rounded-lg border transition-colors ${ className={`w-full text-left text-sm px-3 py-2 rounded-lg border transition-colors ${
value === opt.id value === opt.id
@@ -361,8 +362,16 @@ function MultiSelectField({
const selected = value.includes(opt.id); const selected = value.includes(opt.id);
return ( return (
<div key={opt.id}> <div key={opt.id}>
<button <div
role="button"
tabIndex={0}
onClick={() => toggle(opt.id)} onClick={() => toggle(opt.id)}
onKeyDown={(e) => {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
toggle(opt.id);
}
}}
className={`w-full text-left text-sm px-3 py-2 rounded-lg border transition-colors flex items-center gap-2 ${ className={`w-full text-left text-sm px-3 py-2 rounded-lg border transition-colors flex items-center gap-2 ${
selected selected
? 'border-primary bg-primary/5 text-primary' ? 'border-primary bg-primary/5 text-primary'
@@ -371,7 +380,7 @@ function MultiSelectField({
> >
<Checkbox checked={selected} className="pointer-events-none" /> <Checkbox checked={selected} className="pointer-events-none" />
{getI18nText(opt.label)} {getI18nText(opt.label)}
</button> </div>
{opt.has_input && selected && ( {opt.has_input && selected && (
<input <input
type="text" type="text"