2016-12-14 93 views
0

我使用的是selectize在我的形式,如果用戶檢查複選框先,可見輸入舊的輸入值:Laravel如何獲得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"']) !!} 

但它不工作,我應該怎麼辦呢?

回答

0

你輸入::老可能是工作確定,這個問題似乎是,如果唯一的選擇是從「項目」陣列選擇新添加的項目將不會成爲這個數組中尚未等都將刪除從選擇運行後的輸入。

你可以通過老(「標籤」)循環,並添加一個新項目的項目數組中新的。