Cakephp提交表单前的电子邮件格式验证

时间:2017-03-21 11:04:40

标签: forms validation email cakephp

我需要在Cakephp中提交表单之前验证电子邮件格式。

我收到了一封无效的电子邮件(即 testuser1 ,而非 testuser1@domain.com )。请求已提交,然后出错。如果电子邮件无效,则不应提交请求。

非常好奇我在代码中遗漏了什么,并在论坛中提到了相关问题,但这对我不起作用。 ħ

代码是:

//for email input
 <div class="form-group">
    <?= $this->Form->label("email", __('Email')); ?>
            <?=     $this->Form->text("email", [
                    'required' => true,
                    'label'    => false,
                    'id'       => "email",]);
            ?>
 </div> 


<div class="btn-group btn-group-spaced form-group" role="group" aria-label="Actions">
    <?= $this->Form->button(__('Submit'), ['class' => 'btn orange btn-default']) ?>
    <?= $this->Form->button(__('Clear'), ['class' => 'btn orange hollow btn-default ucase','id' => 'show-prof','type' => 'reset']) ?>
</div>

2 个答案:

答案 0 :(得分:1)

我正在回答我自己的问题。

需要做一个小小的改变。

即,在提交表单之前,使用表单&gt;电子邮件代替表单 - &gt;文字来验证电子邮件。

代码就像:

$scope.incrementLikes = function(comment) {
   if(comment.comment != null && comment.comment.length > 0)  comment.likes++;
};

$scope.decrementLikes = function(comment) {
    if(comment.comment != null && comment.comment.length > 0)  comment.likes--;
};

答案 1 :(得分:1)

尝试:

//for email input
 <div class="form-group">
    <?= $this->Form->label("email", __('Email')); ?>
            <?=     $this->Form->input("email", [
                    'required' => true,
                    'label'    => false,
                    'id'       => "email",
                    'type'     => "email"
                    ]);
            ?>
 </div> 


<div class="btn-group btn-group-spaced form-group" role="group" aria-label="Actions">
    <?= $this->Form->button(__('Submit'), ['class' => 'btn orange btn-default']) ?>
    <?= $this->Form->button(__('Clear'), ['class' => 'btn orange hollow btn-default ucase','id' => 'show-prof','type' => 'reset']) ?>
</div>

'type' => "email"会在输入中添加值type的{​​{1}}属性。

阅读:CakePHP Form helper

此外,您可以访问http://www.formvalidator.net/获取更多验证