【问题标题】:Change value of another SELECT tag, when selecting different select options选择不同的选择选项时,更改另一个 SELECT 标记的值
【发布时间】:2011-08-10 14:28:50
【问题描述】:

我有一个选择标签,用户可以在其中选择他们希望点击的曝光类型:

 <select name="exposure">
                        <?php while($a = mysql_fetch_assoc($r)):  ?>
                            <option value=""><?php echo $a['exposure']; ?></value>
                        <?php endwhile; ?>
                        </select>

在此之下,我有另一个选择标签,它将显示点击次数,其值取自他们选择的任何曝光类型:

<select name="clicks">
                        <?php while($a = mysql_fetch_assoc($r)):  ?>
                            <option value=""><?php echo $a['amount']; ?></value>
                        <?php endwhile; ?>
                        </select>

我的问题是:如何根据用户在第一个选择标签中选择的内容更改第二个选择标签中的值?

【问题讨论】:

    标签: php javascript jquery select tags


    【解决方案1】:

    这应该不会太难。您真正需要的只是“曝光”值和“点击”值之间的映射,以及将“点击”值转换为有效标记的某种方式。您可以在 jsFiddle 上使用以下示例:http://jsfiddle.net/ninjascript/5QPq5/

    /**
     * Here's a map of possible values from 'exposure' and
     * related values for 'clicks'.
     */
    var map = {
        "OptionA": ['A001','A002','A003'],
        "OptionB": ['B001','B002','B003']  
    };
    
    /** 
     * A quick and dirty method to turn some values in the map
     * into a set of <option> tags.
     */
    function create(key)
    {
        var result = [];
        if (map.hasOwnProperty(key)) {
            for (var i = 0; i < map[key].length; i++) {
                result.push('<option value="'+map[key][i]+'">');
                result.push(map[key][i]);
                result.push('</option>');
            }
        }
        return result.join('');
    }
    
    /**
     * Use jQuery to handle every 'change' event and add a new
     * set of <option> elements to the 'clicks' element.
     */
    $('select[name="exposure"]').live('change', function()
    {   
        var options = create(this.value);
        $('select[name="clicks"]').html(options);
        $('div').html('<span>foo</span>'); // <-- Update some other element too
    });
    

    编辑:jQuery.live() 将在事件发生时执行一个函数。您可以在该函数中做任何您想做的事情,包括更改多个 DOM 元素的内容。

    【讨论】:

    • 谢谢,似乎有效。但是如果我想提交第三个值,但不是在选择中,而是在 DIV 中呢? IE。价格,也会发生变化?
    • 您几乎可以在“更改”事件处理程序中做任何您想做的事情。编辑:ack ...猜你不能在这里添加代码。我将编辑原始帖子。
    猜你喜欢
    • 2016-02-26
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 2020-07-12
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多