2017-06-07 17 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());''' –