我检查了插件,我认为它从未与selected
选择的值一起使用,但它仅使用当前值运行时间。
这是因为该setInputValues
函数设置选定的属性,如果它在data
对象中未定义。仅当数据对象未定义时,我才通过设置属性来修复代码。
看:
// import values into <input> commands
$.contextMenu.setInputValues = function(opt, data) {
if (data === undefined) {
data = {};
}
$.each(opt.inputs, function(key, item) {
switch (item.type) {
case 'text':
case 'textarea':
item.value = data[key] || "";
break;
case 'checkbox':
item.selected = data[key] ? true : false;
break;
case 'radio':
item.selected = (data[item.radio] || "") == item.value ? true : false;
break;
case 'select':
if (data[key]!=undefined ){
item.selected = data[key] || "";
}
break;
}
});
};
工作小提琴:http: //jsfiddle.net/vYnv3/1/
这是固定代码的pastebin:http: //pastebin.com/Mg3j7ifB
如果工作正常,我会分叉修复。
编辑
也增加了对收音机和复选框的支持:
// import values into <input> commands
$.contextMenu.setInputValues = function(opt, data) {
if (data === undefined) {
data = {};
}
$.each(opt.inputs, function(key, item) {
switch (item.type) {
case 'text':
case 'textarea':
item.value = data[key] || "";
break;
case 'checkbox':
if (data[key]!=undefined ){
item.selected = data[key] ? true : false;
}
break;
case 'radio':
if (data[item.radio]!=undefined ){
item.selected = (data[item.radio] || "") == item.value ? true : false;
}
break;
case 'select':
if (data[key]!=undefined ){
item.selected = data[key] || "";
}
break;
}
});
};
新的pastebin:http://pastebin.com/c8XFVMiD
工作小提琴:http: //jsfiddle.net/vYnv3/2/