2017-08-23 5 views
0

私はこのようなlaravel 5.3自動検証電子メールlaravelはどうすればできますか?

マイビューの刃を使用します。このような

<form id="form-register" role="form" method="POST" action="{{ url('/register') }}"> 
    ... 
    <div class="{{$errors->has('email')?'form-group has-error': 'form-group'}}"> 
     {{Form::label('email', 'Email'), ['class' => 'control-label'])}} 
     {{Form::email('email', old('email'), ['class' => 'form-control', 'id' => 'email')}} 
     @if ($errors->has('email')) 
      <span class="error error-server help-block">Please Enter Your Valid Email</span> 
     @endif 
    </div> 
    ... 
</form> 

は私の検証:私はすでにあるメールアドレスを入力した場合

public function rules() 
{ 
    return [ 
     ... 
     'email' => 'required|email|max:255|unique:users' 
    ]; 
} 

それは

の作品データベーステーブル、その後、私は提出、それは無効なメッセージの検証メールが表示されます

しかし、私は、ユーザーがデータベーステーブル内の既存の電子メールを入力している場合

自動検証

にそれを変更したいが、それは自動的に無効なメッセージの検証電子メールを表示します

私はそれをどのように行うことができますか?

+3

私がうまくいかない場合は、HTMLの入力で、フォームに既存の電子メールを入力したかどうかを確認しますか? 入力されている場合は、ajaxリクエストを追加して入力を確認する必要があります。 – EkinOf

+0

@EkinOfによれば、電子メール入力フィールドの変更アクションでajaxコールを使用して行うことができます。 –

+0

[こちら](https://stackoverflow.com/questions/40422363/how-to-make-validation-using-ajax-laravel-5-3)にチェックしてください。AJAXを使用して回答しました。 –

答えて

1

入力が変更された場合は、バックエンドにAjaxリクエストを送信する必要があります。このリクエストは、リクエストされたメールの既存を確認するAPIに到達します。電子メールのフィールドにバリデーターによって返さ

+0

詳細な回答で回答しよう –

0

私が正しくあなたを理解していれば、あなたが正確なエラーメッセージを表示したい

あなたが最初のエラーメッセージが呼び出しによって、電子メールのために戻さ得ることができますここでは、この$errors->first('email')

は一例です

@if ($errors->has('email')) 
    <span class="error error-server help-block">{{$errors->first('email')}}</span> 
@endif 
+0

正確なエラーメッセージを表示したくないと思う。 OPは、送信を押す前にユーザーに警告する電子メールが既に存在するかどうかを動的にチェックすることを試みます。 –

+0

@Digitlimit、私は入力テキストのユーザー入力後に電子メールをチェックしたいと思います。送信ボタンをクリックした後でない –

+0

その場合、jQueryを使用する必要があります。このための多くのjQueryプラグインがあります – Digitlimit

関連する問題