6

選択入力のあるフォームがあります。検証は問題ありませんが、失敗すると選択フィールドに古い値が入力されません。 ここに私の選択フィールドがあります

  <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> 

どうすればこれを解決できますか?

4

5 に答える 5

10

Laravel Form ビルドを使用したくない場合は、次のようにする必要があります。

 <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> 
于 2014-10-03T05:52:27.417 に答える
3

個人的には、このコードの方がきれいだと思います。ここに善悪はありません。Laravel の @if @endif ステートメントを好む人がいる理由は理解できますが、視覚的に邪魔すぎるように見えるだけです。

<option {{ old('gender')=='male' ? 'selected="selected"' : '' }}>Test option</option>
于 2016-10-25T17:12:26.263 に答える
1

これは HTML select 要素によるものです。

デフォルトのオプション値を select 要素に割り当てたい場合は、その特定のオプションに 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>
于 2014-10-03T05:58:36.273 に答える