问题描述
我正在使用Symfony创建表单。在表单标签和用户输入数据的小部件之间,我有一个按钮,当按下该按钮时会显示文本提示,以帮助指导用户。这可以正常工作,当用户单击按钮时,它会正确显示文本,但是也会显示该字段的错误消息,表明该字段不能为空。在提交表单之前,我不需要显示错误,因此似乎显示得太早了。非常感谢您的任何建议。
这是模板的相关部分:
{{ form_start(form) }}
{{ form_label(form.field1,'My Custom Task Label') }}
<button onclick="myFunction()">Click to display prompts</button>
<div id="myDIV" style = "display:none">
This is a helpful prompt.
</div>
{{ form_widget(form.field1) }}
<script>
function myFunction() {
var x = document.getElementById("myDIV");
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
}
</script>
{{ form_end(form) }}
解决方法
按钮默认是提交按钮。您的按钮未指示任何类型,因此为提交类型。解决方案:将类型设置为“按钮”:
<button type="button" onclick="myFunction()">Click to display prompts</button>
否则,它正在发送表单/尝试发送表单,显然捕获了错误/必填字段,因此显示了错误。