我有一个表,复选框是数组,文本框也是数组。我想要实现的是当用户选中一个复选框时,它应该验证输入文本框不为空。
公共功能房间预订(请求 $request)
{
$消息=数组(
'check.required'=>'没有选择房间。请选择房间进行预订!',
'txtnos.required|numeric'=>'请输入人数',
);
$规则=数组(
'检查'=>'必需',
'txtnos'=>'required_with:data', //txtnos 是一个数组输入字段,data 是一个数组复选框
);
$validator = Validator::make($request->all(), $rules,$messages
);
如果 ($validator->fails()) {
返回重定向::返回()
->withErrors($validator)
->withinput();
}
}
html代码
public function roombooking(Request $request) { $messsages = array( 'check.required'=>'No room was selected.Please select room to proceed for booking !', 'txtnos.required|numeric'=>'Please enter no of persons', ); $rules = array( 'check'=>'required', 'txtnos'=>'required_with:data', //txtnos is a array input filed and data is a array checkbox ); $validator = Validator::make($request->all(), $rules,$messsages ); if ($validator->fails()) { return Redirect::back() ->withErrors($validator) ->withinput(); } }
请帮我
改变你的表格:
...
<td><input type="checkbox" name="row[{{$key}}][data]" value="0;{!! $activity->ActivityId !!};{!! $activity->Rate !!};0;0;{!! $activity->ActivityName !!}" />
</td>
<td>{!! $activity->ActivityName !!}</td>
<td>{!! $activity->Rate !!}</td>
<td>{!! Form::text('row[{{$key}}][txtnos]','',['class' => 'form-control small-textbox ','txtnoid'=>$activity->ActivityId]) !!}</td>
...
Run Code Online (Sandbox Code Playgroud)
所以唯一改变的是数据和txtnos的名称,它会给你以下内容:
$exampleResult = [
'row' => [
// old $key as new key
0 => [
'txtnos' => 'entered value',
'data' => '1', // But only if checked
],
1 => [
'txtnos' => 'entered value',
'data' => '1', // But only if checked
],
]
];
Run Code Online (Sandbox Code Playgroud)
验证规则
$rules = [
'row.*.txtnos' => 'required_with:row.*.data'
];
Run Code Online (Sandbox Code Playgroud)
在示例中,txtnos如果data在同一行 isset,则需要在每一行上。
验证消息
$messages = [
'row.*.txtnos.required_with' => 'Enter a value or uncheck the checkbox..'
];
Run Code Online (Sandbox Code Playgroud)
重要提示: Laravel 5.2 中添加了
验证.*.,您没有指定您的确切版本,所以我不确定它是否适合您。无论如何,还有另一种方法可以做到这一点。
对于版本 < 5.2,循环输入行并将我示例中的 * 替换为当前键。
| 归档时间: |
|
| 查看次数: |
2425 次 |
| 最近记录: |