在自定义编辑类型字段中添加多个输入元素
问题描述:
有没有办法创建具有多个输入元素的自定义字段?我正在咨询documentation,创建单个输入元素非常简单,但我不确定如何添加多个元素。在自定义编辑类型字段中添加多个输入元素
有没有人过过这座桥?如果是这样,你是怎么做到的?
下面是一些示例代码:
...
{name: 'Dimensions', index: 'Dimensions', hidden: true, editable: true,
edittype: 'custom', editoptions: {custom_element: dimensionsElement,
custom_value: dimensionsValue}, editrules: {edithidden: true}},
...
function dimensionsElement(value, options) {
var el = document.createElement("input");
el.type = "text";
el.value = value;
return el;
}
function dimensionsValue(elem) {
return $(elem).val();
}
答
您可以使用jQuery来创建多个输入元素。所以,如果你的领域是例如一个人的全名,你可以使用以下
{ name: 'FullName', editable: true, edittype: 'custom', width: 300,
editoptions: {
custom_element: function(value, options) {
// split full name to the first and last name
var parts = value.split(' ');
// create a string with subelements
var elemStr = '<div><input id="'+options.id +
'_first" size="10" value="' + parts[0] +
'" /></br><input id="'+options.id + '_last' +
'"size="20" value="' + parts[1] + '" /></div>';
// return DOM element from jQuery object
return $(elemStr)[0];
},
custom_value: function(elem) {
var inputs = $("input", $(elem)[0]);
var first = inputs[0].value;
var last = inputs[1].value;
return first + ' '+ last;
}
}},
这是事业的原始代码片段,你应该提高input
元素的布局(size
属性例如值)。它显示了自定义编辑元素构建的主要概念。
修订:如果使用自定义编辑它使用recreateForm: true
参数(见http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing)是很重要的。详情请参阅jqgrid - Set the custom_value of edittype: 'custom'。