Laravel如何为选择输入获取旧的输入值

时间:2016-12-14 08:58:33

标签: validation laravel-5.2 blade

我在表单中使用selectize输入,如果用户首先选中了复选框,则会显示该输入:

{!! Form::text('engagement_question', null, ['id' => 'engagement_question', 'placeholder' => 'Spørsmål for "bli med"']) !!}

因此,在页面加载时,我正在检查复选框是否已选中,然后在我的脚本中根据该条件显示该字段。

$(document).ready(function() {
    engagementCheckbox();
});

var engagementCheckbox = function() {
    if($('#engagement-checkbox').is(":checked")) {
        $('.engagement').show();
    }
    else {
        $('.engagement').hide();
        selectize.clear();
    }
}

$('#engagement-checkbox').change(function() {
    engagementCheckbox();
});

var items = icoop.engagements.map(function(x) {
    return { item: x };
});

var $select = $('#engagement_question').selectize({
    persist: false,
    maxItems: 1,
    options: items,
    labelField: "item",
    valueField: "item",
    sortField: 'item',
    searchField: 'item',
    create: true,
    render: {
      option_create: function(data, escape) {
        return '<div class="create">Nytt inlegg<strong> ' + escape(data.input) + '</strong>&hellip;</div>';
      }
    },
    onChange: function(value) {
      var unique = true;

      for(var i = 0; i < items.length; i++) {
        if(items[i].item == value) {
          unique = false;
          break;
        }
      }

      if(!unique) {
        $select.next('.selectize-control').find('.item').addClass('item-background');
      }
    },
});

var selectize = $select[0].selectize;

我还希望验证失败,如果该字段有一个,则显示用户的旧输入值。仅当用户从selectize items中选择了一个选项时才返回输入,但如果用户自己创建了一个选项则不返回。 我试过添加Input::old('engagement_question')但是没有工作:

{!! Form::text('engagement_question', Input::old('engagement_question'), ['id' => 'engagement_question', 'placeholder' => 'Spørsmål for "bli med"']) !!}

但它不起作用,我应该怎么做?

1 个答案:

答案 0 :(得分:0)

你的输入::旧可能正常工作,问题似乎是如果唯一的选择是从&#39;项目中选择&#39;数组新添加的项目还不在此数组中,因此在选择运行后将从输入中删除。

您可以遍历旧的(&#39;标记&#39;)并将新项目添加到items数组中以用于新项目。