jQuery X-可编辑:根据其他选择字段的值更新选择字段

我正在使用用于jquery的X-Editable插件。我有两个select字段,它们通过ajax动态提供数据。这是我的代码:

字段:

<td class=“中心”>
<a href=”“data name=“”.$res['mid']”。“class=”zone“>”$zonename.&lt/a>
&lt/td>
<td class=“中心”>
<a href=”“data name=“”.$res['mid']”。“class=“area”data zona=“”.$zoneuid。”“>”$区域名称。'&lt/a>
&lt/td>

以及jQuery:

$('a.zone')。可编辑({
键入:“选择”,
url:“../admin/callbacks/quickEdit.php?t=zone”,
主键:1,,
显示按钮:正确,
资料来源:函数(){
var结果;
$.ajax({
url:“../admin/callbacks/jsonDataList.php”,
数据:{t:'zone'},
键入:“GET”,
全球:错,
async:false,
数据类型:“json”,
成功:功能(数据){
结果=数据;
}
});
返回结果;
},
成功:函数(响应,newValue){
$(this).parent().sides('td')。children('a.area')。data('zona',newValue);
console.log(响应,newValue);
}
});
$('a.area')。可编辑({
键入:“选择”,
主键:1,,
url:“../admin/callbacks/quickEdit.php?t=area”,
显示按钮:正确,
资料来源:函数(){
var结果;
var zona=$(this.data('zona');
$.ajax({
url:“../admin/callbacks/jsonDataList.php”,
数据:{t:'区域',区域:地带},
键入:“GET”,
全球:错,
async:false,
数据类型:“json”,
成功:功能(数据){
结果=数据;
}
});
返回结果;
},
成功:函数(响应,newValue){
控制台日志(响应);
}
});

我想做的是:当他们更改$('a.zone')的值时,我希望$('a.area')重新加载ajax数据。我该怎么做呢

我为此挣扎了一会儿。基本上,最终起作用的是

  1. 通过在editables success(可编辑文件成功)功能中触发上游可编辑文件的编辑成功后,调节下游可编辑文件的更新
  2. 将旧的下游可编辑文件替换为自身的克隆,以摆脱附加的表单(我还不知道如何直接更新),以及
  3. 对替换调用editables函数

看看下面

var-editable\u-triggered\u-updates=函数(已更改的元素,newValue){
var update\u second\u editable=函数(el\u id,newUpstreamValue){
变量数据={
id\u上游\u可编辑:“oldUpstreamValue”
};
if(数据[el_id]==未定义){
回来
}
//IE缓存解决方案
var n=new Date().getTime();
$.getJSON(my_lookup_url,{t:n,my_get_参数:newUpstreamValue},函数(返回_对象){
//步骤2:用克隆替换可编辑表单,以摆脱旧的可编辑表单
$('#id#u down_editable')。替换为($('#id#u down_editable')。克隆();
$('#id_down_editable').attr('data-source',return_object['data-source']);
//步骤3:在新对象上调用“可编辑”
$('#id_下游_可编辑')。可编辑({
模式:“内联”,
ajaxOptions:{
数据类型:“json”,
sourceCache:'false'
}
});
});
};
更新第二个可编辑元素(已更改元素id,newValue);
};
!函数(触发的_更新){//editables设置
$(“.editable”).editable({
模式:“内联”,
ajaxOptions:{
数据类型:“json”,
sourceCache:'false'
}
成功:函数(响应,newValue){
触发的_更新(this,newValue);//步骤1
},
});
}(可编辑的|触发的|更新| | console.log);//第1步也是

发表评论