Laravel 8: Pourquoi la lame de connexion n'affiche pas d'alerte Javascript [fermé]

Nov 25 2020

Je travaille sur mon login.blade.phpet je souhaite afficher une boîte d'alerte si l'utilisateur a rencontré une erreur lors du remplissage du formulaire:

<form method="POST" action="{{ route('login') }}">
    @csrf
    <div class="field">
        <span class="fas fa-user"></span>
        <input type="email" name="email" required>
        <label style="right:0;">Email</label>
        @error('email')
            alert('Something went wrong');
        @enderror                   
    </div>
    <div class="field">
        <span class="fas fa-lock"></span>
        <input type="password">
        <label style="right:0;">Password</label>
        @error('email')
            alert('Something went wrong');
        @enderror
    </div>
    <button>Login</button>
</form>

Donc, comme vous pouvez, je mets le alert()si l'utilisateur a rencontré une erreur avec l'email ou le mot de passe, mais le problème est qu'il n'affiche pas le message contextuel!

Je veux dire qu'il l'imprime simplement sous forme de texte à côté de l'entrée.

Donc, si vous savez ce qui ne va pas ici ou comment puis-je résoudre cela, faites-le moi savoir, j'apprécierais vraiment toute idée de votre part ...

Réponses

BabakAsadzadeh Nov 25 2020 at 13:52

Je pense que c'est parce que vous oubliez la <script>balise, faites-le comme ceci:

@error('email')
    <script>
        alert('Something went wrong');
    </script>
@enderror
Alex Nov 25 2020 at 13:53

Il s'affiche simplement sous forme de texte car vous l'utilisez comme du texte, pour le faire fonctionner, vous devez le déclarer comme un script, comme:

@error('email')
   <script type="text/javascript">
      alert('Something went wrong');
   </script>
@enderror