Мои правила проверки переднего плана не работают. Здесь мои файлы create.blade.php и member_form.blade.php
create.blade.php
{!! Form::model($member, ['action' => 'MemberController@store', 'id' => 'createform']) !!}
@include('members.partials.member_form')
<button class = "btn btn-success" type = "submit">Save Member</button>
{!! Form::close() !!}
<script>
$(document).ready(function(){
$("#createform").validate({
rules: {
name: {
required:true
}
}
});
});
</script>
member_form.blade.php
<div class = "form-group">
{!! Form::label('name', 'First Name:') !!}
{!! Form::text('name', null, ['class' => 'form-control']) !!}
</div>
Когда я тестирую плагин проверки JQuery, я получаю только сообщения внутренней проверки. Когда я пытаюсь создать пустую форму создания, в которой не введено имя, сообщение проверки внешнего интерфейса не появляется. Я ввел js-скрипт не в то место или мой код неправильный? Документация, похоже, соответствует тому, что я здесь закодировал.
Визуализированный HTML:
<form method = "POST" action = "http://tomcrud.test:8080/members/store" accept-charset = "UTF-8" id = "createform"><input name = "_token" type = "hidden" value = "Q1UhJGJBEvBKqZ2O8FuKL4ukY7Zdedfi0HUn2iHU">
<div class = "form-group">
<label for = "name">First Name:</label>
<input class = "form-control" name = "name" type = "text" id = "name">
</div>
<div class = "form-group">
<label for = "surname">Last Name:</label>
<input class = "form-control" name = "surname" type = "text" id = "surname">
</div>
<div class = "form-group">
<label for = "id_number">ID Number:</label>
<input class = "form-control" name = "id_number" type = "text" id = "id_number">
</div>
<div class = "form-group">
<label for = "mobile_number">Mobile Number:</label>
<input class = "form-control" name = "mobile_number" type = "text" id = "mobile_number">
</div>
<div class = "form-group">
<label for = "email">Email:</label>
<input class = "form-control" name = "email" type = "text" id = "email">
</div>
<div class = "form-group">
<label for = "date_of_birth">D.O.B:</label>
<input class = "form-control" name = "date_of_birth" type = "text" id = "date_of_birth">
</div>
<div class = "form-group">
<label for = "language_id">Language:</label>
<select id = "language_id" name = "language_id"><option value = "1">Afrikaans</option><option value = "2">English</option><option value = "3">Dutch</option><option value = "4">Swahili</option><option value = "5">German</option></select>
</div>
<div class = "form-group">
<label for = "interest_id[]">Interest:</label>
<select multiple class = "form-control" id = "interest_id[]" name = "interest_id[]"><option value = "1">Rugby</option><option value = "2">Golf</option><option value = "3">Tennis</option><option value = "4">Squash</option><option value = "5">Paragliding</option><option value = "6">Movies</option><option value = "7">Hiking</option><option value = "8">Diving</option><option value = "9">Fishing</option><option value = "10">Hunting</option></select>
</div>
<button class = "btn btn-success" type = "submit">Save Member</button>
</form>
Файлы сценария:
<script src = "http://tomcrud.test:8080/js/jquery-3.3.1.js"></script>
<script src = "http://tomcrud.test:8080/js/bootstrap.js"></script>
<script src = "http://tomcrud.test:8080/js/delete_confirm.js"></script>
<script src = "http://tomcrud.test:8080/js/jquery.validate.js"></script>
Содержит ли элемент input атрибут name? Если да, то это name = "name", потому что это именно то, как вы объявили правило, и иначе оно не будет работать.
Спасибо за ответ @Sparky. Я добавил отрисованный HTML. PS - Я загрузил программное обеспечение JQuery и добавил файл в сценарии в моем главном файле. Не уверены, может ли это повлиять? Помощь приветствуется
Я также добавил файлы сценария, но ничего странного там не вижу.
Вы пытались написать эти правила проверки в функции, а затем добавить форму при событии ('submit')? Похоже, эта проверка активируется при загрузке страницы. вам нужно добавить его в событие отправки формы
@Haque, это неправильно, совершенно неправильно. Метод .validate() - это предполагается, который вызывается при загрузке страницы, чтобы инициализировать плагин. Тогда событие submit - это автоматически, захваченное плагином.
Код, который вы разместили выше, работает для поля name: jsfiddle.net/90kvqmze ~ проверьте консоль на наличие ошибок JavaScript. Возможно, ваши файлы не включаются должным образом?






Так что, в конце концов, исправление было действительно глупым. Я поговорил с одним из моих друзей-разработчиков, и он посоветовал мне поместить ссылку в основной файл, а не в конец. Это исправило! Но почему? Не имею представления...
<!DOCTYPE html>
<html>
<head>
<title>ProPay_CRUD - @yield('title')</title>
<link rel = "stylesheet" href = "{{asset('css/bootstrap.css')}}">
<link rel = "stylesheet" href = "{{asset('css/custom.css')}}">
<script src = "{{asset('js/jquery-3.3.1.js')}}"></script>
</head>
<body>
@include('shared.header')
<div class = "container">
<div class='row'>
<div class='col justify-content-center'>
<p></p>
@include('shared.errors')
@include('shared.message')
@yield('content')
</div>
</div>
</div>
@include('shared.footer')
<script src = "{{asset('js/bootstrap.js')}}"></script>
<script src = "{{asset('js/delete_confirm.js')}}"></script>
<script src = "{{asset('js/jquery.validate.min.js')}}"></script>
<script src = "{{asset('js/additional-methods.min.js')}}"></script>
<script src = "{{asset('js/validation.js')}}"></script>
</body>
</html>
Если вы хотите устранить неполадки в коде на стороне клиента, вам необходимо показать нам код сторона клиента. Другими словами, где находится HTML-разметка оказано для формы?