Я создаю форму laravel следующим образом: -
{{ Form::open(array(
'method' => 'POST',
'class' => 'form-horizontal form-label-left',
'route' => ['edit_settings'],
'id' => 'editSettingsForm',
'files' => true,
'novalidate' => true)) }}
<div class="col-md-12 col-sm-12 col-xs-12">
@foreach($configList as $key => $cl)
<div class="item form-group">
@php
$caption = $cl['config_key'];
$caption = str_replace('_', ' ', $caption);
@endphp
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="config_key">@if($caption == 'emails'){{ 'Admin ' . ucfirst($caption) }}@else{{ ucfirst($caption) }}@endif <span class="required">*</span>
</label>
<div class="col-md-9 col-sm-9 col-xs-12">
{{ Form::hidden('config_key[]', $cl['config_key'], array(
'id' => 'config_key_' . $key,
'class' => 'form-control col-md-7 col-xs-12',
'data-validate-length-range' => '3,50',
'placeholder' => 'Config Key',
'required' => 'required' )) }}
@if($cl['value_unit'] == 'date')
{{ Form::select('config_value[]',
array(
'd-m-Y' => 'd-m-Y',
'd/m/Y' => 'd/m/Y',
'd.m.Y' => 'd.m.Y',
'Y-m-d' => 'Y-m-d',
'Y/m/d' => 'Y/m/d',
'Y.m.d' => 'Y.m.d',
'm-d-Y' => 'm-d-Y',
'm/d/Y' => 'm/d/Y',
'm-d-Y' => 'm.d.Y'
),
$cl['config_value'],
array(
'class' => 'form-control col-md-7 col-xs-12',
'id' => 'config_value_' . $key
)) }}
@elseif($cl['value_unit'] == 'time')
{{ Form::select('config_value[]',
array(
'H:i:s' => 'H:i:s',
'H.i.s' => 'H.i.s',
'H:i' => 'H:i',
'H.i' => 'H.i',
'h:i:s A' => 'h:i:s A',
'h.i.s A' => 'h.i.s A',
'h:i:s a' => 'h:i:s a',
'h.i.s a' => 'h.i.s a',
'h:i A' => 'h:i A',
'h.i A' => 'h.i A',
'h:i a' => 'h:i a',
'h.i a' => 'h.i a'
),
$cl['config_value'],
array(
'class' => 'form-control col-md-7 col-xs-12',
'id' => 'config_value_' . $key
)) }}
@elseif($cl['value_unit'] == 'url')
{{ Form::url('config_value[]', $cl['config_value'], array(
'id' => 'config_value_' . $key,
'class' => 'form-control col-md-7 col-xs-12',
'data-validate-length-range' => '3,50',
'placeholder' => 'Config value',
'required' => 'required' )) }}
@else
{{ Form::text('config_value[]', $cl['config_value'], array(
'id' => 'config_value_' . $key,
'class' => 'form-control col-md-7 col-xs-12',
'data-validate-length-range' => '3,50',
'placeholder' => 'Config value',
'required' => 'required' )) }}
@endif
</div>
</div>
@endforeach
<div class="ln_solid"></div>
<div class="form-group">
<div class="col-md-6 col-md-offset-3">
<a class="btn btn-primary back_new" href="{{url('/cpanel/dashboard/')}}">Back</a>
<button id="send" type="submit" class="btn btn-success submit_new">Submit</button>
</div>
</div>
</div>
<div style="clear:both;"></div>
{{ Form::close() }}
Обратите внимание, что: -
- Несколько элементов ввода имеют одинаковое имя, т.е.config_value [].
- Один элемент с именем = config_value [] может иметь тип = 'текст', в то время как другой элемент с именем = config_value [] может иметь тип = 'url.'.
- У типа с type = 'url' должно быть правило проверки URL, в то время как у типа с type = 'text' не должно быть правила проверки URL
Все входные типы будут иметь некоторые общиеосновные правила вроде обязательны.Тот, чей тип будет url, будет иметь правила проверки url.
Вот код проверки формы jquery: -
$(document).ready(function(){
$("#editSettingsForm").validate({
ignore: [],
rules: {
'config_value[]': {
required: true
}
},
messages: {
'config_value[]': {
required: "Please enter value"
}
}
});
$("input[type=url]").each(function(){
$(this).rules( "add", {
url: true,
messages: {
url: "Please, provide valid url link"
}
});
});
});
Однако вместо входов с type = url всевходы получают добавленное к ним правило проверки URL.Что я делаю не так?