Jquery 如果Selectize.js选择框中不存在项,则创建该项,ajax将更新新添加的项
我在选择框中使用了,我需要的是,如果选项列表中没有项目,我需要添加一个新项目。添加新项时,我希望有一个ajax调用来将新添加的项更新到我的数据库中 在他们的示例中,它表示我们可以使用create让selectize添加项目 创建-允许用户创建不在选项列表中的新项目。此选项可以是以下任意选项:true默认行为、false禁用,或接受两个参数的函数:input和callback。应使用选项的最终数据调用回调 但我不知道如何使用回拨电话。有人能帮忙吗 下面是我的内容示例,这些值是数据库中项目的ID。我希望将新项目添加到db中,并从db返回id值,然后在选择框中填充并选择Jquery 如果Selectize.js选择框中不存在项,则创建该项,ajax将更新新添加的项,jquery,selectize.js,Jquery,Selectize.js,我在选择框中使用了,我需要的是,如果选项列表中没有项目,我需要添加一个新项目。添加新项时,我希望有一个ajax调用来将新添加的项更新到我的数据库中 在他们的示例中,它表示我们可以使用create让selectize添加项目 创建-允许用户创建不在选项列表中的新项目。此选项可以是以下任意选项:true默认行为、false禁用,或接受两个参数的函数:input和callback。应使用选项的最终数据调用回调 但我不知道如何使用回拨电话。有人能帮忙吗 下面是我的内容示例,这些值是数据库中项目的ID。我
<select name="fruits" id="fruits" placeholder="Select a fruit" >
<option value="1">Apple</option>
<option value="2">Orange</option>
<option value="3">Mango</option>
<option value="4">Grape</option>
</select>
<script>
$(function(){
$('#fruits').selectize({
create:function (input, callback){
}
});
});
</script>
您必须调用回调,传递您的值:
$('#fruits').selectize({
create:function (input, callback){
callback({
value: 123, // probably your ID created or something
text: input
});
}
});
实际上,您必须返回属性与labelField和valueField选项名称匹配的对象:
<script>
$(function(){
$('#fruits').selectize({
create:function (input){
return { value:123, text:input};
}
});
});
</script>
如果需要执行远程操作,请按以下方式编写代码:
<script>
$(function(){
$('#fruits').selectize({
create:function (input, callback){
$.ajax({
url: '/remote-url/',
type: 'GET',
success: function (result) {
if (result) {
callback({ value: result.id, text: input });
}
}
});
}
});
});
</script>
您需要将callback放在create函数create:function input,callbackGood catch中。复制/粘贴打字错误。谢谢分享。如何获取添加了新项的select下拉列表的标识符?我不仅要传递输入参数中存储的新项值,还要传递select标识符,以便决定将新项插入到哪个数据库表中。任何指点都将不胜感激。你好。谢谢分享这段代码。我能够重用上面的代码,并在数据库表中插入了一个新项。但当我移动到另一个文本框控件时,该值消失,我必须选择新添加的项。只是想知道我是否遗漏了什么。必须是回调{value:result.id,text:input};在最新的selectize.js中
Thanks a lot, @Corgalore. Its working for me like
$(function(){
$('#desig').selectize({
create:function (input, callback){
$.ajax({
url: "<?php echo $this->url(null, array('controller' => 'employee-detail', 'action' => 'add-new-desig-ajax'));?>",
type: 'POST',
data:{'designation':input},
success: function (result) {
if (result) {
// console.log('sdfasf',result);
callback({ value: result.id, text: input });
}
}
});
}
});
});