【问题标题】:Access old("value") in form edit在表单编辑中访问 old("value")
【发布时间】:2017-04-09 19:17:05
【问题描述】:

我目前正在编辑页面。我的编辑完美地显示了旧的(产品名称)输入值,如下所示:

<div class="form-group">
    <label for="product-input">@lang('product.name')</label>
    <input id="product-input" type="text" name="name" class="form-control" value="{{ isset($product) ? $product->name : '' }}">
</div>

我的问题是,如何通过选择来做到这一点?编辑时如何获取旧的选定选项值?

我的代码:

<div class="form-group">
    <label>@lang('product.group')</label>
    <select name="product_group_id" id="product_group_id" class="form-control" ng-model="productGroup" ng-change="changedType(val)">
            <option style="display: none" value="">@lang('product.choose_group')</option>
        @foreach ($product_groups as $product_group)
            <option value="{{$product_group->id}}">{{$product_group->name}}</option>
        @endforeach
    </select>
</div>

解决方案

将 ng-selected 添加到选项元素中,如下所示:

@foreach ($product_groups as $product_group)
    <option value="{{$product_group->id}}" ng-selected="{{ isset($product->product_group_id) ? $product->product_group_id == $product_group->id : ''}}">{{$product_group->name}}</option>
@endforeach

【问题讨论】:

    标签: php angularjs laravel-5.3


    【解决方案1】:

    您需要检查旧值是否等于选项值,然后使用selected属性:

        @foreach ($product_groups as $product_group)
            <option @if(old('product_group_id') == $product_group->id) selected @endif value="{{$product_group->id}}">{{$product_group->name}}</option>
        @endforeach
    

    【讨论】:

      【解决方案2】:

      考虑第一次使用默认值更好:

      <option 
          value="{{$product_group->id}}" 
          {{ old('product_group_id', $product->id) != $product_group->id?: 'selected' }}>
              {{$product_group->name}}
      </option>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-26
        相关资源
        最近更新 更多