form validation using jquery in laravel 9; Through this tutorial, we will learn how to add jquery validation in laravel 9 forms and as well as how to add jquery custom error message in laravel forms.
Laravel 9 Client Side Form Validation Using jQuery
Follow the below steps to add jQuery validation with custom error messages in laravel 9 forms:
- Step 1: Install Laravel Fresh Setup
- Step 2: Setup Database
- Step 3: Make Migration file with Model
- Step 4: Make Route
- Step 5: Create Controller & Methods
- Step 6: Create Blade View
- Step 7: Start Development Server
Step 1: Install Laravel Fresh Setup
First of all, Execute the following command on terminal to download fresh new laravel setup:
composer create-project --prefer-dist laravel/laravel Blog
Step 2: Setup Database
After successfully install laravel Application, Go to your project .env file and set up database credential and move next step :
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name here
DB_USERNAME=here database username here
DB_PASSWORD=here database password here
Step 3: Make Migration file with Model
Use the below command to create one model also with one migration file.
php artisan model Product -m
Now go to Go to app/database/create_products_table.php and replace the below function :
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('code');
$table->text('description');
$table->timestamps();
});
}
Before run php artisan migrate command go to app/providers/AppServiceProvider.php and put the below code :
..
use Illuminate\Support\Facades\Schema;
....
function boot()
{
Schema::defaultStringLength(191);
}
...
Next migrate the table using the below command.
php artisan migrate
Now go to app/Product.php file and add the fillable properties like this :
protected $fillable = [ 'name', 'email', 'message', ];
Step 4: Make Route
Create two routes in the web.php file. Go to app/routes/web.php file and create two below routes here :
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\ProductController; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/', function () { return view('welcome'); }); Route::get('jquery-validation', [ProductController::class, 'index']); Route::post('store-product', [ProductController::class, 'store']);
Step 5: Create Controller
Create a controller name ContactController, So run the below command on terminal:
php artisan make:controller ProductController
After successfully create controller go to app/controllers/ProductController.php and put the below code :
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Product;
class ProductController extends Controller
{
public function index()
{
return view('product');
}
public function store(Request $request)
{
$validatedData = $request->validate([
'title' => 'required|unique:products|max:255',
'code' => 'required|unique:products|max:255',
'description' => 'required',
]);
$product = new Product;
$product->title = $request->title;
$product->code = $request->code;
$product->description = $request->description;
$product->save();
return redirect('jquery-validation')->with('status', 'Product Has Been Added');
}
Step 6: Create Blade view
Create a blade view file. So, Go to app/resources/views and create one file name product.blade.php.
<!DOCTYPE html>
<html>
<head>
<title>Laravel 9 jQuery Validation Example Tutorial - Tutsmake.com</title>
<meta name="csrf-token" content="{{ csrf_token() }}">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.min.js"></script>
<style>
.error{
color: #FF0000;
}
</style>
</head>
<body>
<div class="container mt-4">
@if(session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
<div class="card">
<div class="card-header text-center font-weight-bold">
<h2>Laravel 9 jQuery Form Validation Before Submit - Tutsmake.com</h2>
</div>
<div class="card-body">
<form name="product-add" id="product-add" method="post" action="{{url('store-product')}}">
@csrf
<div class="form-group">
<label for="exampleInputEmail1">Title</label>
<input type="text" id="title" name="title" class="@error('title') is-invalid @enderror form-control">
@error('title')
<div class="alert alert-danger mt-1 mb-1">{{ $message }}</div>
@enderror
</div>
<div class="form-group">
<label for="exampleInputEmail1">Product Code</label>
<input type="text" id="code" name="code" class="@error('code') is-invalid @enderror form-control">
@error('code')
<div class="alert alert-danger mt-1 mb-1">{{ $message }}</div>
@enderror
</div>
<div class="form-group">
<label for="exampleInputEmail1">Description</label>
<textarea name="description" class="@error('description') is-invalid @enderror form-control"></textarea>
@error('description')
<div class="alert alert-danger mt-1 mb-1">{{ $message }}</div>
@enderror
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div>
<script>
if ($("#product-add").length > 0) {
$("#product-add").validate({
rules: {
title: {
required: true,
maxlength: 50
},
code: {
required: true,
},
description: {
required: true,
},
},
messages: {
title: {
required: "Please enter title",
},
code: {
required: "Please enter valid email",
},
description: {
required: "Please enter message",
},
},
})
}
</script>
</body>
</html>
Step 7: Run Development Server
Run the following command on terminal to start server :
php artisan serve
Now we are ready to run our example, so hit the below url on the browser to quick run.
http://localhost:8000/form-jquery
Conclusion
In this tutorial, We have successfully validated form data on client-side in laravel 9 application using jquery validation.
Recommended Laravel Tutorials
If you have any questions or thoughts to share, use the comment form below to reach us.