如何修复此jquery代码,该代码将下拉值发送到文本字段?

时间:2012-04-19 17:38:48

标签: jquery

我以为我弄明白了,但是无法让它正常工作:

我想要的只是以下: onChange这些下拉列表中的任何一个都会获取所选值并将其添加到隐藏文本字段 [在实际应用中,这些下拉列表位于字段集中,并且根据所选的产品类型仅显示一个或另一个] 简单我知道,但我看不出我做错了什么。

以下代码和我的jsFiddle就在这里http://jsfiddle.net/justmelat/M3hyX/

<form method="post" action="">
<fieldset name="projInfo" id="projInfo">
                <legend>Proj Info</legend>
                Hidden Product Field:  <input name="hiddenProdField" id="hiddenProdField" type="text" />
                            </fieldset>

<fieldset name="Group1" id="Group1">
                <legend>Product 1</legend>
                <select name="firstSet"  id="firstSet">
                <option value="0">Select</option>
                <option value="One">One</option>
                <option value="Two">Two</option>
                <option value="Three">Three</option>
            </select>
            </fieldset>
<fieldset name="Group2" id="Group2">
                <legend>Product 2</legend>
                <select name="secondSet"  id="secondSet">
                <option value="0">Select</option>
                <option value="Four">Four</option>
                <option value="Five">Five</option>
                <option value="Six">Six</option>
            </select>
            </fieldset>
<fieldset name="Group3" id="Group3">
                <legend>Product 3</legend>
                <select name="thirdSet"  id="thirdSet">
                <option value="0">Select</option>
                <option value="Seven">Seven</option>
                <option value="Eight">Eight</option>
                <option value="Nine">Nine</option>
            </select>
            </fieldset>
</form>​

$(document).ready(function() {
        $("select#firstSet, select#secondSet, select#thirdSet").change(function(){
            var prodType = "";
            $("select#firstSet, select#secondSet, select#thirdSet option:selected");
            prodType = $(this).text();
          $("#hiddenProdField").text(prodType);
        })
        .trigger('change');
    });

3 个答案:

答案 0 :(得分:3)

您误认为text()函数和val()函数。见http://jsfiddle.net/M3hyX/5/

    $("#firstSet, #secondSet, #thirdSet").change(function(){
        $("#hiddenProdField").val($(this).val());
    })
    .trigger('change');

答案 1 :(得分:2)

$("#hiddenProdField").text(prodType);看起来应该是$("#hiddenProdField").val(prodType);

答案 2 :(得分:2)

$('fieldset select').change(function() {
 $('input#hiddenProdField').val(this.value);
});

DEMO