首页 > 解决方案 > 使用单选按钮进行条件验证,当单选按钮值为“是”时需要另一个输入,否则可以为空

问题描述

我有两个带有 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'
  }

标签: laravelvalidationradio-button

解决方案


你可以写这个。希望这能解决你的问题

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'
    ];
}

推荐阅读