为什么下拉列表返回不正确的值?

时间:2014-07-14 17:21:09

标签: javascript jquery select input

我遇到了一个问题,即我使用jQuery来获取下拉值,但是,它只返回最初选择的值。该页面是用PHP编写的,并从数据库中获取值。如果先前选择了select元素,则具有该值的选项会将选定的属性放在其上。这导致如下:

<select name="dropdown1">
    <option value="1">1</option>
    <option value="2" selected>2</option>
    <option value="3">3</option>
</select>

我使用javascript的问题是,无论选择什么内容,具有所选属性的选项始终作为该输入的值返回。实际选择哪个选项并不重要,选项2始终作为选定元素返回。这是我正在使用的JavaScript。

    $.each( inputs, function( key, value ){
        var element = $( "[name='" + key + "']" );
        var this_val = $( element ).val();
        console.log( this_val ); //always returns 2
    });

变量输入是一个关联数组,其键和值对匹配表单中的输入名称。您可以提供有关为何发生这种情况的任何帮助,我们将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

如果您执行var inputs = $('select')之类的操作,则keyselect节点数组的下标,而不是实际节点名称。但是,value表示与key对应的节点,因此您只需执行var element = $( "[name='" + value.name + "']" );