问题的出现原因是需要在输入值通过datalist验证后激活按钮。解决方法是首先将按钮设置为禁用状态,通过添加disabled属性实现。然后在JavaScript中添加监听器来监听输入表单的任何更改,并通过循环将输入值与选项进行验证。如果验证通过,则将disabled属性设置为false,否则在底部显示错误消息。此外,如果想要获取选定选项的data-id属性值,可以使用getAttribute方法获取,并通过更新隐藏的输入表单将该值提交。如果希望用户只能选择datalist选项之一,则可以考虑使用select标签。