在我的表单中,我使用ajax填充州和城市的下拉列表。 此外,在同一表单上,用户可以通过单击"添加更多按钮"来添加多个员工。
在上述两个场景中,HTML DOM元素都是使用jquery生成的。
如果表单提交验证失败,我需要重新构建动态生成的元素。
任何人都可以告诉我一个正确的方法来实现上述问题。
感谢。
答案 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 将被退回: