laravel - 使用单选按钮进行条件验证,当单选按钮值为“是”时需要另一个输入,否则可以为空
问题描述
我有两个带有 value="YES" 和 value="NO" 的单选按钮。如果选定的单选按钮具有 YES 值,我想让我的下一个输入文本是必需的,否则下一个输入文本可以为空
我已经尝试过这个 Laravel 验证如果勾选了复选框,那么输入文本是必需的吗? 但我认为它仅适用于复选框,不适用于单选按钮。这是我的代码:
看法
<table>
<tr>
<td><b>If yes, student agree to the accommodation prepared by International Office</b></td>
<td><input type="radio" name="opt_acc" size="20" value="YES"/> YES</td>
</tr>
<tr>
<td><b>If no, please state where you plan to stay in Indonesia:</b></td>
<td><input type="radio" name="opt_acc" size="20" value="NO"/> NO</td>
</tr>
<td><b>Address</b><hr>
<input placeholder="Address" type="text" name="address_acc" size=50"></td>
<td><b>Contact Person (Name/Phone)</b><hr>
<input placeholder="Name & Phone" type="text" name="cp_acc" size="25"></td>
</table>
验证规则
public function rules()
{
return [
// Accomodation
'opt_acc' => 'required|in:YES,NO',
'address_acc' => 'required|string',
'cp_acc' => 'required|string'
];
}
我希望流程是这样的:
if (opt_acc == YES) {
'address_acc' => 'required|string',
'cp_acc' => 'required|string'
}
else {
'address_acc' => 'nullable|string',
'cp_acc' => 'nullable|string'
}
解决方案
你可以写这个。希望这能解决你的问题
public function rules()
{
return [
'opt_acc' => 'required|in:YES,NO',
'address_acc' => 'sometimes|nullable|required_if:opt_acc,YES|string',
'cp_acc' => 'sometimes|nullable|required_if:opt_acc,YES|string'
];
}
推荐阅读
- python - Python 的统一算法未按预期工作
- javascript - 使用可变长度字典渲染 Handlebars 模板
- r - 计算截至特定日期的每个唯一值的平均值
- javascript - 直接从组件的事件处理程序中返回功能组件
- zig - 如何读取 zig 中的文件?
- android - 如何以编程方式从网页注册事件或用户?
- ruby-on-rails - ActiveRecord::RecordInvalid:验证失败:图像文件大小应大于 1 字节
- flutter - Figma to Flutter - 如何修复字体大小差异?
- apache-spark - Pyspark 在加载 JSON 文件时忽略不正确的模式,同时仍然利用模式推断
- python - 包罗万象的视图打破 Django 中的 URL 模式