为了账号安全,请及时绑定邮箱和手机立即绑定

验证选择下拉列表。提交表格时只有一个选项是正确的

验证选择下拉列表。提交表格时只有一个选项是正确的

PHP
侃侃尔雅 2023-07-08 17:23:18
所以我有一个带有文本框的简单表单,下拉菜单中有 2 个选项和一个提交按钮。我有一个包含两个值的下拉菜单 - Google 和 Bing。如果您选择 Bing,我希望它抛出错误。我为仅接受字母的文本框制作了类似的东西。如果您在输入框中添加数字,则会显示正则表达式错误。我如何为我的下拉菜单获取这个?我的刀片文件:    <form action="{{route('redirectURL')}}" method="GET">    <input {!!$errors->has('searchText') ? 'style="background-color: #faa"' : '' !!} type="text"     value="    {{old('searchText')}}" name="searchText" pattern="[a-zA-Z0-9]{5,30}" title="Vain [a-zA-Z0-9]{5,30}             hyväksytään"> <input type="submit" name="submit"><br>    @error('searchText')    <div style="background-color: lightgrey; width:230px;">    {{$message}}    </div>    @enderror    <select name="searchEngine">    <option name="Google" value="http://www.google.com/search?q=" @if(old('searchEngine') ==             "http://www.google.com/search?q=") {{'selected'}} @endif >Google</option>    <option name="Bing" value="http://www.bing.com/search?q=" @if(old('searchEngine') ==                     "http://www.bing.com/search?q=") {{'selected'}} @endif>Bing</option>    </select>    @error('Google')    <div style="background-color: lightgrey; width:230px">    {{$message}}    </div>    @enderror还有我的控制器:public function searchURL(){$validator = request()->validate([    'searchText'=> ['required','regex:/^[a-zA-Z]{5,30}$/'],    'Google' => 'required'],    ['searchText.regex' => 'I accept only letters!',    'Google.required' => 'Dont use Bing... use Google!'    ]);文本框正则表达式错误显示得很好,但我不知道如何为 Bing 选项生成相同类型的错误。
查看完整描述

1 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

在 html 表单中选择的工作方式有所不同

<select name="engine">
   <option value="bing">bing</option>
</select>

在上面的代码中,当您在请求中提交数据时将

engine = bing

所以你必须对 进行验证 'engine' key。在你的代码中你必须进行验证searchEngine

// 选项一:“in”采用逗号分隔的可接受值列表 $rules = [ 'engine' => 'in:google', ];

添加此规则并检查它是否有效根据您的要求更改键值

查看完整回答
反对 回复 2023-07-08
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信