【问题标题】:Form input not validate if input is disabled如果输入被禁用,表单输入不验证
【发布时间】:2018-11-21 04:31:01
【问题描述】:

我有一个选项被禁用,即页面不可编辑。 这是我的代码:

 <select name="status" class="form-control" id="status" @if($page->editable == 0) disabled @endif>
   <option value="1" @if ($page->status == 1) selected @endif>Online</option>
   <option value="0" @if ($page->status == 0) selected @endif>Concept</option>
</select>

但是由于输入被禁用,他没有发送任何值。 现在问题来了。 我验证表格。这是我验证表单的代码:

$form = $request->validate([
    'status' => 'required',
]);

但是现在我得到了错误,因为值状态是空的并且是必需的。 你现在如何设置他唯一需要的验证是表单没有被禁用?

我希望你能帮助我。

【问题讨论】:

  • 发送隐藏的有效输入您的禁用字段
  • $page 是路径的一部分,例如“pages/{page}”吗?另外,你使用的是什么版本的 Laravel?
  • 使用readonly 而不是disabled

标签: php html laravel forms validation


【解决方案1】:

首先,你应该使用单独的函数来存储和更新,

对于商店,您的验证码似乎正确,但您可以添加boolean 规则

$form = $request->validate([
    'status' => 'required|boolean',
]);

对于更新,您可以使用这样的验证规则,

$form = $request->validate([
    'status' => 'nullable|boolean',
]);

如果您使用相同的功能进行存储和更新,您应该发送editable 状态的值,您可以像这样根据editable 状态应用验证规则,

if ($request->editable) {
  ....
 }
 else {
...
}

我希望这会有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-06
    • 2018-08-21
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多