Я создаю переключатель со значением да / нет. при выборе «Да» требуется текстовое поле, и оно работает нормально. но когда я выбираю «нет», текстовое поле скрывается, но кнопка сохранения не работает. код скрипта:
<script>
$('input[name = "master_study"]').click(function(e){
if (e.target.value == 1){
$('#university_name').show();
}else{
$('#university_name').hide();
}
});
$('#university_name').hide();
</script>
и это мой код create.blade.php:
{!! Form::open(['method'=>'POST','action'=>'JobController@store','files'=>true]) !!}
<div class = "input-group" style = "margin-top:10px;">
<div class = "form-control" style = "padding-top:2px;">
{!! Form::label('master_study','Are you studying at a master level? ',['class'=>'input-group-inline']) !!}
     
{!! Form::radio('master_study','1') !!} Yes
     
{!! Form::label('university_name','If yes, Which university ? ') !!}
{!! Form::text('university_name',null,['placeholder'=>'Name Of University', 'required']) !!}
   
{!! Form::radio('master_study','0') !!} No
   
</div>
</div>
<div class = "form-group" style = "margin-top:10px;">
{!! Form::submit('Save', ['class'=>'btn btn-primary col-sm-4']) !!}
</div>
{!! Form::close() !!}
это мой контроллер:
public function store(Request $request)
{
$user = Auth::user();
$user->jobs()->create($request->all());
return redirect()->back();
}






Вы сделали текстовое поле «обязательным». Это будет верно, даже если оно скрыто. Возможное решение может быть примерно таким (я его не тестировал, но идея вы поняли).
<script>
$('input[name = "master_study"]').click(function(e){
if (e.target.value == 1){
$('#university_name').attr('required', 'required');
$('#university_name').show();
}else{
$('#university_name').removeAttr('required');
$('#university_name').hide();
}
});
$('#university_name').hide();
</script>
Если текстовое поле скрыто при первом отображении формы, убедитесь, что вы удалили требуемый атрибут из колонки.
Наконец я нашел решение:
$this->validate($request,[
'university_name' => 'required_if:master_study,==,1|nullable|string',
]);