Javascript 在带有id和;标签

Javascript 在带有id和;标签,javascript,laravel,Javascript,Laravel,我有一个表单,我在customer字段中使用typeahead,它可以很好地显示客户名称,但是我需要将客户id保存到数据库中,而不是名称 以下是我目前正在尝试的: app.blade.php <script> $('#clientsearch').typeahead({ source: function (query, process) { clients = []; map = {}; var data = [

我有一个表单,我在customer字段中使用typeahead,它可以很好地显示客户名称,但是我需要将客户id保存到数据库中,而不是名称

以下是我目前正在尝试的:

app.blade.php

    <script>
    $('#clientsearch').typeahead({
    source: function (query, process) {
        clients = [];
        map = {};
        var data = [{"clientID": "1", "clientName": "client 1"},
        {"clientID": "2", "clientName": "client 2"},
        {"clientID": "3", "clientName": "client 4"},
        {"clientID": "4", "clientName": "client 10"},
        {"clientID": "5", "clientName": "client 3"}
        ];
        $.each(data, function (i, client) {
            map[client.clientName] = client;
            clients.push(client.clientName);
        });
        process(clients);
    },
    matcher: function (item) {
        if (item.toLowerCase().indexOf(this.query.trim().toLowerCase()) != -1) {
            return true;
        }
    },
    sorter: function (items) {
        return items.sort();
    },
    highlighter: function (item) {
        var regex = new RegExp('(' + this.query + ')', 'gi');
        return item.replace(regex, "<strong>$1</strong>");
    },
    updater: function (item) {
        $('#clientID').val(clients[item].clientID);
        return item;
    }
});
</script>

$(“#clientsearch”)。请提前键入({
来源:功能(查询、流程){
客户=[];
map={};
var data=[{“clientID”:“1”,“clientName”:“client1”},
{“clientID”:“2”,“clientName”:“client2”},
{“clientID”:“3”,“clientName”:“client4”},
{“clientID”:“4”,“clientName”:“client10”},
{“clientID”:“5”,“clientName”:“client3”}
];
$。每个(数据、功能(i、客户端){
map[client.clientName]=客户端;
clients.push(client.clientName);
});
流程(客户);
},
匹配器:功能(项目){
if(item.toLowerCase().indexOf(this.query.trim().toLowerCase())!=-1){
返回true;
}
},
分拣机:功能(项目){
returnitems.sort();
},
荧光灯:功能(项目){
var regex=new RegExp(“(“+this.query+”)”,“gi”);
返回项目。替换(regex,“$1”;
},
更新程序:函数(项){
$('#clientID').val(客户端[项目].clientID);
退货项目;
}
});
形式


{!!Form::label('client','client:')
{!!Form::text('client','',['class'=>'表单控件','id'=>'clientsearch','autocomplete'=>'off'])
typeahead未初始化,收到的错误为:


“未捕获的TypeError:$(…)。typeahead不是一个函数”

谢谢各位,我现在设法让它工作了,以防其他人需要类似的东西。代码如下

$('#client').typeahead({
    source: function (query, process) {
        client = [];
        clientid = {};
        var data = [{"clientID": "1", "clientName": "client 1"},
            {"clientID": "2", "clientName": "client 2"},
            {"clientID": "3", "clientName": "client 4"},
            {"clientID": "4", "clientName": "client 10"},
            {"clientID": "5", "clientName": "client 3"}
        ];
        $.each(data, function (i, state) {
            clientid[state.clientName] = state;
            client.push(state.clientName);
        });
        process(client);
    },
    matcher: function (item) {
        if (item.toLowerCase().indexOf(this.query.trim().toLowerCase()) != -1) {
            return true;
        }
    },
    sorter: function (items) {
        return items.sort();
    },
    highlighter: function (item) {
        var regex = new RegExp('(' + this.query + ')', 'gi');
        return item.replace(regex, "<strong>$1</strong>");
    },
    updater: function (item) {
        $('#clientID').val(clientid[item].clientID);
        return item;
    }
});
$(“#客户机”)。提前键入({
来源:功能(查询、流程){
客户=[];
clientid={};
var data=[{“clientID”:“1”,“clientName”:“client1”},
{“clientID”:“2”,“clientName”:“client2”},
{“clientID”:“3”,“clientName”:“client4”},
{“clientID”:“4”,“clientName”:“client10”},
{“clientID”:“5”,“clientName”:“client3”}
];
$。每个(数据、函数(i、状态){
clientid[state.clientName]=状态;
client.push(state.clientName);
});
过程(客户);
},
匹配器:功能(项目){
if(item.toLowerCase().indexOf(this.query.trim().toLowerCase())!=-1){
返回true;
}
},
分拣机:功能(项目){
returnitems.sort();
},
荧光灯:功能(项目){
var regex=new RegExp(“(“+this.query+”)”,“gi”);
返回项目。替换(regex,“$1”;
},
更新程序:函数(项){
$('#clientID').val(clientID[item].clientID);
退货项目;
}
});

谢谢各位,我现在设法让它工作起来,以防其他人需要类似的东西。代码在这里

$('#client').typeahead({
    source: function (query, process) {
        client = [];
        clientid = {};
        var data = [{"clientID": "1", "clientName": "client 1"},
            {"clientID": "2", "clientName": "client 2"},
            {"clientID": "3", "clientName": "client 4"},
            {"clientID": "4", "clientName": "client 10"},
            {"clientID": "5", "clientName": "client 3"}
        ];
        $.each(data, function (i, state) {
            clientid[state.clientName] = state;
            client.push(state.clientName);
        });
        process(client);
    },
    matcher: function (item) {
        if (item.toLowerCase().indexOf(this.query.trim().toLowerCase()) != -1) {
            return true;
        }
    },
    sorter: function (items) {
        return items.sort();
    },
    highlighter: function (item) {
        var regex = new RegExp('(' + this.query + ')', 'gi');
        return item.replace(regex, "<strong>$1</strong>");
    },
    updater: function (item) {
        $('#clientID').val(clientid[item].clientID);
        return item;
    }
});
$(“#客户机”)。提前键入({
来源:功能(查询、流程){
客户=[];
clientid={};
var data=[{“clientID”:“1”,“clientName”:“client1”},
{“clientID”:“2”,“clientName”:“client2”},
{“clientID”:“3”,“clientName”:“client4”},
{“clientID”:“4”,“clientName”:“client10”},
{“clientID”:“5”,“clientName”:“client3”}
];
$。每个(数据、函数(i、状态){
clientid[state.clientName]=状态;
client.push(state.clientName);
});
过程(客户);
},
匹配器:功能(项目){
if(item.toLowerCase().indexOf(this.query.trim().toLowerCase())!=-1){
返回true;
}
},
分拣机:功能(项目){
returnitems.sort();
},
荧光灯:功能(项目){
var regex=new RegExp(“(“+this.query+”)”,“gi”);
返回项目。替换(regex,“$1”;
},
更新程序:函数(项){
$('#clientID').val(clientID[item].clientID);
退货项目;
}
});

似乎没有包含typeahead插件,您添加了脚本文件吗?在调用
$('#clientsearch')的
之前是否包含了typeahead的
js
文件。typeahead({…})
?似乎没有包含typeahead插件,您添加了脚本文件了吗?在调用
$('#clientsearch').typeahead({…})
之前是否包含了typeahead的
js
文件?