Laravel表单请求动态字段在重定向上消失

时间:2017-06-07 18:49:52

标签: jquery forms laravel validation field

我有一个表单,一个按钮,可以再添加一个表单,以及表单请求验证文件。 一切正常,除了一件事: 当用户添加一个字段时(在点击" +添加文档编号"之后)并输入已在DB中的值:

enter image description here

验证工作正常,并将用户重定向到同一页面,但现在只有一个字段:

enter image description here

问题:如何使pic 1中的所有字段保留在pic 2中?

我的代码:

形成自己:

<form>
  <div class='inputs'>    
    <label>Doc number: </label>
    <input type="text" name="doc_fullnumber[1]" value="{{old('doc_fullnumber.1')}}">
  </div>
  <button id='add_item'>Add doc number</button>
  <input type="submit" value="Submit">
</form>

一个jquery代码,如果用户单击&#34;按钮,则会再添加一个输入&#34;:

$(document).ready(function(){
    $('#add_item').on('click', function (event) {
        event.preventDefault();
        var i = 2;
        $new_docnumber = $(         
            '<br><br>'+
            '<label>Номер док-та: </label>'+ 
            '<input type="text" name="doc_fullnumber['+i+']" placeholder="Номер док-та" value="{{old('doc_fullnumber.[i]')}}">');
        $('.inputs').append($new_passenger);
    })
})

Laravel的FormRequest文件中的工作表单验证:

public function rules()
{
    return [

        'doc_fullnumber' => 'unique:tourists'

    ];
}

public function messages()
{
    return ['doc_fullnumber.unique' => 'Doc number is already in DB!'];
}

感谢任何帮助人员!

2 个答案:

答案 0 :(得分:1)

这是正常的,因为在没有JS附加元素的情况下加载原始DOM,我建议您使用JQuery(Ajax)。

如果你仍想使用你的代码,你应该使用JS来重新创建请求参数,你需要通过使用键数组来创建输入名称=&#34;键&#34;来循环访问URL请求的参数。 value =&#34; value&#34;,我希望有帮助。

这是获得婴儿车的代码:

var qd = {};
if (location.search) 
  location.search.substr(1).split("&").forEach(function(item) {
  var s = item.split("="),
    k = s[0],
    v = s[1] && decodeURIComponent(s[1]);
  (qd[k] = qd[k] || []).push(v)
})

答案 1 :(得分:1)

尝试这个

返回Redirect :: back() - &gt; withInput(Input :: all());