Silverstripe形式没有显示错误或成功

时间:2018-03-24 00:43:03

标签: php validation silverstripe silverstripe-4

我有以下表格,

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显示在模板中。

作为参考,这里有一些指向用于表格/页面的完整文件的链接。

Contact page

Contact page controller

Working fine form

Working fine form controller

这让我疯了几个小时,我不知道会出现什么问题。

0 个答案:

没有答案