我有以下表格,
public function ContactForm()
{
$fields = FieldList::create(
TextField::create('Nombre', 'Tu nombre')
->setCustomValidationMessage('Por favor coloca tu nombre.')
);
$actions = FieldList::create(
FormAction::create('sendContactForm', 'Send')
);
$required = [
'Nombre',
];
$validator = new RequiredFields($required);
$form = Form::create($this, 'ContactForm', $fields, $actions, $validator);
// I'm using this novalidate for testing
$form->setAttribute('novalidate', 'novalidate');
$form->setFormMethod('POST', true);
return $form;
}
它没有给我错误,也没有提交成功消息。
如果我用字符串填写字段,表单会成功提交并将我的数据保存到模型中,并发送电子邮件,但我没有收到成功消息。
我有另一种页面类型,其他表单以相同的方式定义,并且工作正常,我不知道为什么这个没有向我显示错误。
如果我将该字段留空,则不会调用sendContactForm
函数,页面将以干净的形式重新加载并且没有错误。这让我认为验证工作正常,因为它没有到达提交功能,但即使我将数据添加到某些字段,表单也会回空,这对我来说非常奇怪,因为另一种形式回来了错误和先前输入的数据。
我也试过没有JS或CSS来确保不是前端干扰。
它们分别使用$ContactForm
和$MessageForm
显示在模板中。
作为参考,这里有一些指向用于表格/页面的完整文件的链接。
这让我疯了几个小时,我不知道会出现什么问题。