Laravel:验证表单中的名称输入

时间:2017-05-27 02:04:25

标签: php jquery forms laravel validation

我正在使用laravel并拥有一个表单。如何验证表单中输入字段的名称。这样就无法在字段中输入随机数。它只是一个简单的输入字段:

<div class="col-md-6 col-sm-6">
   <label>First Name: </label>
</div>

<div class="col-md-6 col-sm-6">
   <input type="text" class ="span3" name="first_name" id="first_name" 
      required/><br><br>
</div>

我已经通过我看到的示例验证了一封电子邮件,并且在您输入后立即离开该输入框而不是等待单击提交按钮时验证它。

  

我怎么能这样做?意思是,一旦用户在输入某个(数字)后离开输入字段,它就会验证和   说些什么(比如&#39;请输入一个正确的名字&#39;)。我不确定是否   它需要使用正则表达式,以及我如何能够得到我想要的结果。

我的电子邮件代码如下:

<div class="row">
   <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
        <div class="col-md-6 col-sm-6">
            <label>Email: </label>
        </div>
        <div class="col-md-6 col-sm-6">
        <input type="email" class ="span3" id="email" name="email" value="{{ 
              old('email') }}" required/><br><br>
         @if ($errors->has('email'))
           <span class="help-block">
             <strong>{{ $errors->first('email') }}</strong>
           </span>
        @endif
   </div>
</div> 

我能够从一个示例中做到这一点,这会在用户输入后立即验证电子邮件。

2 个答案:

答案 0 :(得分:1)

在jQuery中,只要输入字段focusout失焦,就可以使用#first_name方法。 https://api.jquery.com/focusout/

如果您想检查提供的给定值是否有效,您可以使用[正则表达式],就像您在email输入字段中所做的那样:

这是一个给定的例子:

$('#first_name').focusout(function() {
    var sValue = $(this).val();
    var sEmailPattern = /[a-z][A-Z]$/i;
    var bCheckValue = sEmailPattern.test(sValue);
    console.log(bCheckValue);

    if (bCheckValue !== true) {
        alert('please enter a proper name');
        return false;
    }

    // Rest of code ....

});

希望这有助于您的情况。

答案 1 :(得分:1)

要在Laravel中验证请求,您可以做两件事:

选项1.验证器

假设您的表单已发布到控制器中的方法test

public function test(Request $request)
{
    //
}

你可以在这种方法中做的是使用这样的验证器:

public function test(Request $request)
{
    $this->validate($request, [
        'email' => 'required|email',
    ]);
}

可以找到验证规则的完整列表Here。当验证规则失败时,使用它会抛出一堆错误。有关如何在视图中显示这些错误的说明,请参见Here

选项2.表单请求验证

另一种选择是使用请求类。可以使用artisan命令生成这些请求类。此命令的签名如下:

php artisan make:request {NAME OF YOUR REQUEST}

为了这个答案,我将使用一个名为TestRequest的请求类。一代人之后,课程将如下所示:

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class TestRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return false;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            //
        ];
    }
}

让我们快点分解。

authorize功能 这个功能就像它的名字一样。它确定用户是否有权发出此请求。这是一个小例子,在带有留言簿的网站上,每个人都可以发表评论,所以你要做return true

public function authorize()
{
    return true;
}

但是,如果您希望只有具有特定权限的用户才能被允许,您也可以通过此功能进行检查。但是,authorize函数 必须 会返回一个布尔值(true / false)。要了解如何完成此操作,请阅读Laravel的大门here

rules功能 在此功能中,可以设置字段的验证规则。在谈论the validator时,这些规则与前面提到的相同。一个小例子是:

 public function rules()
    {
        return [
            'email' => 'required|email'
        ];
    }

数组元素的键是表单的name属性,值是验证规则的列表,除以|

我建议你阅读一般的Laravel验证,可以here完成。

我希望这对任何方式都有帮助。干杯!