如何显示选择选项的标签?

时间:2013-04-03 01:25:34

标签: jquery select

我写了以下脚本:

http://jsfiddle.net/rgf8K/

它的工作方式是,你选择出生月和喜欢的颜色,然后它应该为你提供你的“名人名字”。

现在编写脚本的方式是错误的...因为输出不显示所选选项值的选项标签。如果这个人选择一月份的月份和绿色的颜色,我想输出说:你的名人名字是琳达格林。

如何显示所选标签选项的标签?非常感谢!!

HTML

<form>
    <select id="month">
        <option value="">- birth month -</option>
        <option value="January">January</option>
        <option value="February">February</option>
        <option value="March">March</option>
    </select>  
    <label class="January" for="January">Linda</label>
    <label class="February" for="February">Chris</label>
    <label class="March" for="March">James</label>


    <select id="color">
        <option value="">- favorite color -</option>
        <option value="Green">Green</option>
        <option value="Blue">Blue</option>
        <option value="Red">Red</option>
    </select>  
    <label class="Green" for="Green">Roberts</label>
    <label class="Blue" for="Blue">Blue</label>
    <label class="Red" for="Red">Unger</label>
</form>

    <p id="output"></p>

的jQuery

$("#month, #color").change(function () {
    var month = $("#month").val();
    var color = $("#color").val();
    var content = '';
    if (month && color) {
        content = 'Your celebrity name is ' + month + ' name ' + color + ' name';
    }
    $("#output").text(content).fadeIn();
});

2 个答案:

答案 0 :(得分:0)

您可以更改选项的值属性:

<select id="month">
        <option value="">- birth month -</option>
        <option value="Linda">January</option>
        <option value="Chris">February</option>
        <option value="James">March</option>
    </select>  

同样适用于颜色。

<select id="color">
        <option value="">- favorite color -</option>
        <option value="Roberts">Green</option>
        <option value="Blue">Blue</option>
        <option value="Unger">Red</option>
    </select>  

然后删除标签,它应该按预期工作。

答案 1 :(得分:0)

因为你有月份值的类名,你可以试试这个:

变化:

var month = $("#month").val();
var color =$("#color").val();

为:

var month = $('.'+$("#month").val()).text();
var color = $('.'+$("#color").val()).text();