比如数据为[1,'男']
下拉条中显示-----  1:男
下拉条选择完毕之后,返回到文本框之后又变成-----男getValue()时返回1如图:

解决方案 »

  1.   

    下拉条中你设置的时候就用displayField+valueField不行吗,好事说你怎么
      

  2.   

    下拉条中你设置的时候就用displayField+valueField不行吗,还是说你在设置displayField的时候只能单独设置displayField,而不能把displayField+valueField设置在一起呢?
      

  3.   

    这样设置不行吧
    displayField:"displayField+valueField",

    displayField:"displayField:valueField",
    我试了 下拉条变成
    {displayField+valueField}
    而且得不到值
      

  4.   

    再补充一下:
    从后台得到的数据{results:2,rows : [{dictcode:'1',dictvalue:'男'},{dictcode:'2',dictvalue:'女'}]}配置项里是:
    displayField:'dictvalue',
    valueField:'dictcode',这样的效果是,下拉条中只显示男和女。而我想让它显示“1:男”“1:女”。
      

  5.   

    刚忘说了,这个问题是Extjs的comboBox的。我使用的版本是 3.3
      

  6.   

    好奇怪的需求!
    在valuechange 事件处理一下吧!
      

  7.   

    有这个需求是因为要使用检索功能,输入1也可以讲男这个信息得到,输入男也可以。
    原来的下拉列表里只有“男”“女”不显示数字。所以如果输入数字就不知道那个了。
    有的下拉条里的内容比较多,1开头的有好几个,所以就希望数字和名字一起显示在下拉列表里。另外:valuechange 是怎么用的?这个以前没用过。
      

  8.   

    问题解决:添加属性配置解决问题
    tpl:'<tpl for="."><div class="x-combo-list-item">{dictcode}:{dictvalue}</div></tpl>',感谢两位的留言,给分了。
      

  9.   


    <html>
        <head>
            
        </head>
        <body>
            <form>
    <select id="selecttest">
    <option value="one">One</option>
    <option value="two">Two</option>
    <option value="three">Three</option>
    </select>
    </form>
    <script type="text/javascript">
                var select = document.getElementById("selecttest");
    var options = select.childNodes;
    select.onfocus = function(){
    for(var i=0; i<options.length; i++){
    if(options[i].nodeType == 1){
    options[i].innerHTML = options[i].getAttribute("value")+":"+options[i].innerHTML;
    }
    }
    }
    select.onblur = function(){
    for(var i=0; i<options.length; i++){
    if(options[i].nodeType == 1){
    options[i].innerHTML = options[i].innerHTML.split(":")[1];
    }
    }
    }
    </script>
        </body>
    </html>