2017-06-07 68 views
0

我有一个表单,一个用于添加一个表单的按钮和Form Request验证文件。 一切工作正常,除了一两件事: 当用户新增了一项场(打“+添加文档号”后),并输入值已经在DB:Laravel表单请求动态字段在重定向时消失

enter image description here

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

enter image description here

问题:如何使目前在图一中的所有领域保持在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的代码,如果用户点击 “按钮”,它增添了一个输入:

$(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!']; 
} 

感谢任何帮助的人!

回答

1

这是正常的,因为原来的DOM加载没有JS附加的元素,我建议你改用JQuery(Ajax)。

如果你仍然想使用你的代码,你应该使用JS来重新创建请求参数,你将需要通过使用键数组来创建输入来循环URL请求的参数name =“key”value =“value “,我希望有所帮助。

这是代码即可获得婴儿车:

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

或者他可以做一个ajax,如果它成功,然后提交表单,如果它不是,那么返回错误和新添加的输入将保持 – lewis4u

+0

@ lewis4u谢谢,我编辑我的答案澄清使用jQuery Ajax –

1

试试这个

回报重定向::回() - > withInput(输入::所有());

+0

究竟应该在哪里我添加它?我正在使用表单验证,而不仅仅是定期验证。 –

+0

如果所有验证通过,则返回'''Redirect :: back() - > withInput(Input :: all());''' –