2017-04-02 52 views
0

與我的文本字段一樣,如果在視圖上返回錯誤,我想使用之前提交的數據填充選擇元素,如:value="{{ old('element_name_here') }}"如果返回錯誤,填充選擇下拉列表

當前觀點:

<select class="form-control" id="input" name="{{ $questionDetail->question_number }}" required="required"> 
    <option disabled selected value> -- Select an option --</option> 
     @foreach($answers as $answer) 
      <option value="{{ $answer->value }}">{{ $answer->question }}</option> 
     @endforeach 
</select> 

我怎樣才能落實到上述情況,因爲似乎沒有成爲一個地方,我可以不覆蓋一個增加價值?謝謝。

回答

0

您需要爲選擇標記以前的值,因此這樣的事情應該工作:

<select class="form-control" id="input" name="{{ $questionDetail->question_number }}" required="required"> 
    <option disabled @if(!old($questionDetail->question_number)) selected @endif value> -- Select an option --</option> 
     @foreach($answers as $answer) 
      <option value="{{ $answer->value }}" @if(old($questionDetail->question_number) == $answer->value) selected @endif>{{ $answer->question }}</option> 
     @endforeach 
</select> 

可能與形式的工作很多時,這是一個好主意,用https://laravelcollective.com/docs/5.3/html(分支5.4)

+0

謝謝。即使表單沒有提交,也沒有返回錯誤,而不是默認爲禁用選項,它默認爲下拉式答案。 – Ben

+0

@Ben是否有任何選項有空值? –

+0

是的,最上面的選項是空的禁用值。沒關係,我已經刪除它並很樂意得到默認答案。謝謝! – Ben

1
<option 
    value="{{ $answer->value }}" 
    {{ $answer->value == old(questionDetail->question_number) ? 'selected' : '' }}> 
     {{ $answer->question }} 
</option> 

您可以從第一個選項中刪除'selected'。它會被默認選中,因爲它是第一個。如果old()存在,那麼它將執行檢查。

相關問題