2014-10-03 3 views
3

У меня есть форма с выбором входом, проверка в порядке, но после аварии поле выбора не заполняет старое значение вот мое поле выборазаселить старый HTML выберите поле в Laravel при отказе

<div class="control-group"> 
    <label class="control-label">Gender :</label> 
    <div class="controls"> 
     <select name="gender" value= "{{ Input::old('gender') }}"> 
      <option>Select</option> 

       <option value="M">Male</option> 
       <option value="F">Female</option> 
     </select> 
    </div> 
</div> 

как я могу это решить?

+1

Вы перенаправляете обратно с помощью '-> withInput()'? –

+0

Да, я сделал это, другое поле ввода заполнено штрафом – dxcoder1

+0

А, это выбор. Я этого не заметил. Выборы не работают таким образом. См. Http://www.w3schools.com/tags/att_option_selected.asp. Я использую 'Form :: model' и' Form :: select', путь Laravel :) –

ответ

10

Если вы не хотите использовать Laravel форму сборки, вы должны сделать это таким образом:

<div class="control-group"> 
    <label class="control-label">Gender :</label> 
    <div class="controls"> 
     <select name="gender"> 
      <option>Select</option> 

       <option value="M" @if (Input::old('gender') == 'M') selected="selected" @endif>Male</option> 
       <option value="F" @if (Input::old('gender') == 'F') selected="selected" @endif>Female</option> 
     </select> 
    </div> 
</div> 
+0

Большое спасибо, он работает – dxcoder1

1

Это происходит из-за выбора элемента HTML.

Если вы хотите назначить какое-либо значение по умолчанию для элемента выбора, используйте атрибут selected = "selected" для этого конкретного варианта, иначе по умолчанию он отобразит первое значение параметра.

<select name="gender"> 
    <option>Select</option> 
     <option value="M" @if (Input::old('gender') == 'M') selected="selected" @endif>Male</option> 
     <option value="F" @if (Input::old('gender') == 'F') selected="selected" @endif>Female</option> 
</select> 
1

Я лично считаю, что этот код чище. Здесь нет никакого права или неправды, я могу понять, почему некоторые предпочли бы заявления Laravel @if @endif, я просто думаю, что они выглядят слишком визуально тревожными.

<option {{ old('gender')=='male' ? 'selected="selected"' : '' }}>Test option</option> 
1

Это так, как я, очень динамичный.

<select id="gender" name="gender"> 
    <option>Select</option> 
     <option value="M">Male</option> 
     <option value="F">Female</option> 
</select> 

<script> 
    var currentGender = null; 
    for(var i=0; i!=document.querySelector("#gender").querySelectorAll("option").length; i++) 
    { 
     currentGender = document.querySelector("#gender").querySelectorAll("option")[i]; 
     if(currentGender.getAttribute("value") == "{{ old("gender") }}") 
     { 
      currentGender.setAttribute("selected","selected"); 
     } 
    } 
</script> 

 Смежные вопросы

  • Нет связанных вопросов^_^