如何在下拉列表中过滤所选值的文本

时间:2012-06-17 03:13:42

标签: php jquery arrays forms filter

我有一个下拉菜单。有产品类型。产品类型具有关联值(来自下拉列表)值对应于机器组。

因此每个选项应该有三个变量 - 机器名称,值,机器组。

我可以获取机器名称,我可以获取机器值(并在不同的字段中显示)...我无法弄清楚的是如何将值更改为机器组。

jQuery('#MachineName').bind('change', function()
    {

      //get selected value from drop down;
        var selectedValue = jQuery("#MachineName").val();

      //populate a text field with the selected drop down value
        jQuery("#MachineValue").val(selectedValue);

我想要做的是保留MachineValue,然后使用已排序的MachineGroup填充另一个文本字段

我一直试图通过类似

的方式来运行它
    switch(jQuery(this).val()){
    case "236" : newVal = "8";
    break;

但是我不想“改变”我想要做的“if then”类型过滤器的值,所以可能是这样的:

    '236' => "8", '237' => "5",

我只是不知道如何正确地说“基于MachineValue分配MachineGroup”(然后让它填充不同的文本字段)

最后我会有三个字段。下拉,MachineValue和MachineGroup。下拉和值完成,我只需要做Group。 (我可以根据MachineName对Group进行排序......只是不确定哪个会更容易)

1 个答案:

答案 0 :(得分:0)

客户端最简单的方法是让服务器向标记添加一些额外的data-属性。 jQuery.data()可以很容易地检索这些内容。

HTML:

<option value="5" data-group="foo" data-name="Bar">Bar</option>

JS:

$('select').change(function(){
    var $sel=$(this).find('option:selected');
    var machineGroup=$sel.data('group');
    var machineName=$sel.data('name');
    var value= $sel.val()// or $(this).val();
});

API(在第一系列示例下面阅读,功能不在原始API中)

http://api.jquery.com/data/