在Laravel 5.1中验证失败时填充动态html元素

时间:2016-06-08 05:37:27

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

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

在上述两个场景中,HTML DOM元素都是使用jquery生成的。

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

任何人都可以告诉我一个正确的方法来实现上述问题。

感谢。

2 个答案:

答案 0 :(得分:5)

假设您通过调用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

答案 1 :(得分:0)

你可以使用

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

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

  

旧输入

     

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

     

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

     

$请求 - &GT;闪速();

     

您也可以使用flashOnly和flashExcept方法来闪烁a   请求数据的子集进入会话:

     

$ request-&gt; flashOnly([&#39;用户名&#39;,&#39;电子邮件&#39;]);

     

$请求 - &GT; flashExcept(&#39;密码&#39);

     

Flash输入到会话然后重定向

     

因为您经常需要与a关联的闪存输入   重定向到上一页,您可以轻松链接输入闪烁   使用withInput方法进行重定向:

     

返回重定向(&#39;表单&#39;) - &gt; withInput();

     

返回重定向(&#39;表单&#39;) - &gt; withInput($ request-&gt;除了(&#39;密码&#39;));

     

检索旧数据

     

要从先前的请求中检索闪烁的输入,请使用旧的   Request实例上的方法。旧方法提供了方便   帮助将闪存的输入数据拉出会话:

     

$ username = $ request-&gt; old(&#39; username&#39;);

     

Laravel还提供全球旧助手功能。如果你是   在Blade模板中显示旧输入,更方便   使用旧帮手。如果给定字符串不存在旧输入,则为null   将被退回: