代码之家  ›  专栏  ›  技术社区  ›  gurun8

在自定义编辑类型字段中添加多个输入元素

  •  5
  • gurun8  · 技术社区  · 14 年前

    有没有一种方法可以创建具有多个输入元素的自定义字段?我在咨询 documentation and creating a single input element i s pretty direct forward,but I'm not exactly sure how you'd added more than one.

    以前有人过这座桥吗?如果是,你是怎么做到的?

    以下是一些示例代码:

    <预> <代码>… 名称:“维度”,索引:“维度”,隐藏:真,可编辑:真, editType:“自定义”,editOptions:自定义_元素:维度选择, 自定义_值:DimensionsValue,EditRules:EditHidden:真, … 功能维度选择(值、选项){ var el=document.createElement(“输入”); el.type=“文本”; el.value=值; 返回EL; } 函数维数值(elem){ 返回$(elem).val(); } < /代码> <文档
    创建一个输入元素是非常直接的,但是我不确定如何添加多个元素。

    以前有人过这座桥吗?如果是,你是怎么做到的?

    下面是一些示例代码:

    ...
    {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();
    }
    
    1 回复  |  直到 13 年前
        1
  •  11
  •   Community CDub    7 年前

    可以使用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' 详情。