【问题标题】:Populating dynamic html elements on validation failure in Laravel 5.1在 Laravel 5.1 中验证失败时填充动态 html 元素
【发布时间】:2016-10-08 05:20:07
【问题描述】:

在我的表单中,我使用 ajax 填充州和城市下拉列表。 此外,在同一个表单上,用户可以通过单击“添加更多按钮”来添加多个员工。

在上述两种情况下,HTML DOM 元素都是使用 jquery 生成的。

如果表单提交验证失败,我需要重新构建动态生成的元素。

谁能告诉我解决上述问题的正确方法。

谢谢。

【问题讨论】:

  • 在提交表单之前,您应该使用 Jquery 验证所有可能的场景。所以提交后你不会有任何问题。
  • 我已经这样做了。我也在寻找服务器端验证。
  • 如果您要进行服务器端验证,您必须在前端进行额外的工作。
  • 嗨 Yash,你知道任何可以在 Laravel 中使用 JS 的包吗?像一个 JS 助手或类似的东西。
  • 如果你搜索你会得到很多选项,检查this链接进行验证。

标签: php validation laravel laravel-5 laravel-5.1


【解决方案1】:

你可以使用

return Redirect::back()->withInput();

或了解更多信息,请访问https://laravel.com/docs/5.2/requests#old-input

旧输入

Laravel 允许您在下一个请求中保留来自一个请求的输入 要求。此功能对于重新填充表单特别有用 在检测到验证错误之后。但是,如果您使用 Laravel 的 包括验证服务,您不太可能需要手动 使用这些方法,作为 Laravel 的一些内置验证工具 会自动调用它们。向会话闪烁输入

Illuminate\Http\Request 实例上的 flash 方法将闪烁 会话的当前输入,以便在会话期间可用 用户对应用程序的下一个请求:

$request->flash();

您也可以使用 flashOnly 和 flashExcept 方法来刷新一个 将请求数据的子集放入会话中:

$request->flashOnly(['username', 'email']);

$request->flashExcept('password');

Flash 输入到会话然后重定向

由于您经常希望将闪烁输入与 重定向到上一页,您可以轻松链接输入闪烁 使用 withInput 方法进行重定向:

return redirect('form')->withInput();

return redirect('form')->withInput($request->except('password'));

检索旧数据

要从上一个请求中检索闪烁的输入,请使用旧的 Request 实例上的方法。旧方法提供了一个方便 从会话中拉出刷新的输入数据的助手:

$username = $request->old('username');

Laravel 还提供了一个全局的 old 辅助函数。如果你是 在 Blade 模板中显示旧输入,这样更方便 使用旧助手。如果给定字符串不存在旧输入,则为 null 将被退回:

【讨论】:

    【解决方案2】:

    假设您通过调用 js 函数动态生成了一个输入列表,可能类似于

    //JS
    function generate(){
      $("#container-abc").append("<input name=name[]>");
    }
    

    <!--HTML -->
    <input name=name[] />
    <input name=name[] />
    

    提交它们,如果出现验证错误,您将使用以下方法取回值:

    //in your blade
    $name = Request::old('name');
    @if(count($name) > 0)
      for (var i = 1; i <= {{count($name)}}; i++) {
        generate();
      }
    @endif
    

    【讨论】:

    • 这似乎是一个可行的解决方案。谢谢。
    猜你喜欢
    • 2017-11-23
    • 1970-01-01
    • 2019-03-13
    • 2018-04-13
    • 2016-07-29
    • 1970-01-01
    • 2017-07-27
    • 2014-11-28
    相关资源
    最近更新 更多