2

我有一个带有下一个代码的表格:

<select multiple="multiple" id="something" class="boo" name="foo">
    <option value="40">AAAAA</option>
    <option value="39">BBBBB</option>
    <option value="15">CCCCC</option>
</select>

目前这个表单有一个绑定的 onChange 函数,它看起来像:

var updateValues = function(event, target, object){
     var selectbox = Ext.get(target.id);
     var values = [];
     for(i=0; i<selectbox.dom.options.length; i++){
         if (selectbox.dom.options[i].selected)
            {values.push(selectbox.dom.options[i].value);}
     }
     callSomeFunc(values);
}

请告诉我正确的方法,使用 ExtJS 来做到这一点。我认为应该有一个函数,它返回一个选定值的数组,就像 jQueryval()一样。如果我不正确,请写评论。

4

1 回答 1

0

如果您想将多项选择与类似 ComboBox 的功能相结合,我建议您使用SuperBoxSelect用户扩展。如果开箱即用的外观不适合您,您可以通过修改或删除包含的 CSS 轻松更改它。

该组件提供了很好的方法来检索选定的值。当用户选择值时,组件将记住这些值并在内部存储它们。相反,如果用户删除值,组件也会为您处理该状态。假设原始功能适合您,您需要做的就是在准备好提交表单后调用方法来获取值。

如果您有兴趣,这里有一个演示页面。它很容易包含在你的 javascript 中,所以不要担心它是一个用户扩展:

http://www.technomedia.co.uk/SuperBoxSelect/examplesRemote.html

于 2010-12-13T13:25:28.437 回答