javascript x-可在显示的事件下拉列表(< select />)源刷新时编辑

6uxekuva  于 2022-12-21  发布在  Java
关注(0)|答案(4)|浏览(115)

我试图在显示之前修改一个x-可编辑的源数据,这样即使源数据改变,我的下拉菜单条目也总是新鲜的。
下面是一个解释链接:http://jsfiddle.net/XN7np/3/

// my source that can change over time
var source = [{'value': 1, 'text': 'fine'}, {'value': 2, 'text': 'bad'}];

$('#my_select').editable({
    'mode'  : 'inline',
    'source': source,
});

$('#my_select').on('shown', function(ev, editable) {
    // now changing my source just before dropdown is shown
    source = [{'value': 1, 'text': 'GOOD'}, {'value': 2, 'text': 'FU'}];

    //$(editable).editable('option', 'source', source); NOT WORKING
    //$('#my_select').editable('option', 'source', source); NOT WORKING
    //$(this).editable('option', 'source', source); NOT WORKING
});

你知道吗?

nwlls2ji

nwlls2ji1#

我在文档中没有看到它,但是您可以像这样将函数传递给source参数:

var source = [{'value': 1, 'text': 'fine'}, {'value': 2, 'text': 'bad'}];

$('#my_select').editable({
    'mode'  : 'inline',
    'source': function() {
        return source;
    },
});

这样它总是使用更新的源数组。我更新了你的小提琴:http://jsfiddle.net/XN7np/4/

nmpmafwu

nmpmafwu2#

这条线的工作原理:

$('#my_select').editable('option', 'source', source);

对于任何可扩展编辑的源代码,如source2,您必须使用双引号来表示“value”和“text”,而不是单引号“value”和“text”:

var source2 = [{"value": 1, "text": "fine111"}, {"value": 2, "text": "bad22"}];

 $('#change').click(function(e) {
    $('#my_select').editable('option', 'source', source2)
 });

将上面的代码复制到你的小提琴例子中,看看它是如何工作的。

ygya80vv

ygya80vv3#

<span class="editable ea-appsch-agntid" data-type="select" data-source="URL" data-value="">agntname</span>
7jmck4yq

7jmck4yq4#

<td>
    <a href="" class="update_record" data-name="status" id="status" data-type="select" data-pk="{{ $tracker->id }}" data-title="Enter status">{{ $tracker->statname }}</a>
 </td>      

<td> <a href="" class="update_record" data-name="category" id="category" data-type="select" data-pk="{{$tracker->id}}" data-title="Enter category">{{ $tracker->catname }}</a></td>

                                



<script type="text/javascript">
    $.fn.editable.defaults.mode = 'inline';

    $.ajaxSetup({
        headers: {
        'X-CSRF-TOKEN': '{{csrf_token()}}'
        }
    });
var statusls = [{'value': 1, 'text': 'Initiated'}, {'value': 2, 'text': 'Interested'}, {'value': 3, 'text': 'Not interested'}, {'value': 4, 'text': 'Details Shared'}, {'value': 5, 'text': 'Negotiating'}, {'value': 6, 'text': 'Onboarded'}, {'value': 7, 'text': 'Being Verified'}, {'value': 8, 'text': 'Picking Up'}, {'value': 9, 'text': 'Live'}, {'value': 10, 'text': 'Dead'}, {'value': 11, 'text': 'Other'}, {'value': 12, 'text': 'Unverified'}, {'value': 13, 'text': 'InProcess'}];

var categoryls = [{'value': 1, 'text': 'Co Shared Offices'}, {'value': 2, 'text': 'Office Space'}, {'value': 3, 'text': 'Event Space'}, {'value': 4, 'text': 'Warehouse'}, {'value': 5, 'text': 'Destination'}, {'value': 6, 'text': 'Agricultural Plot'}, {'value': 7, 'text': 'Classroom | Tution | School'}, {'value': 8, 'text': 'Popup shop'}, {'value': 9, 'text': 'Factory'},  {'value': 10, 'text': 'Agricultural Land'}, {'value': 11, 'text': 'Empty Plot | Ground'}, {'value': 12, 'text': 'Live Streaming'}];

var verify_status = [{'value': 1, 'text': 'Unverified'}, {'value': 2, 'text': 'Inprocess'}, {'value': 3, 'text': 'Verified'}, {'value': 4, 'text': 'Issues'}];

    $('.update_record').editable({
        url: "{{ route('SupplyTrackerupdate') }}",
        type: 'text',  
        'source': function() {
            if ($(this).data('name') ==='status') {                     
                return statusls;
            }   
            if ($(this).data('name') == 'verification_status') {                        
                return verify_status;
            }
            if ($(this).data('name') === 'category') {                      
                return categoryls;
            }   
 
    
            
        },
        name: 'firstname',
        pk: 1,
        title: 'Enter Field'
    });
</script>

相关问题