如何在JavaScript中动态下拉值?

时间:2015-02-23 07:22:14

标签: javascript php zend-form

我在PHP Zend中有一个下拉列表,其中包含以下代码:

$this->addElement('select', 'target', array(
            'decorators' => $this->getElementDecorators(),
            'label' => Zend_Registry::get('Zend_Translate')->translate('Target_Platform'),
            'style' => 'width:320px;',
            'data-help' => Zend_Registry::get('Zend_Translate')->translate('Target_Platform_To_Publish_To'),
        ));

这有一个大约14个值的列表。

我在JS文件中使用下面的代码来获取CURRENT下拉值:

this.temp = $('#target :selected').text();
console.dir(this.temp);

但是,当我在下拉列表中选择其他值时,此变量中的值不会更改? 我希望变量根据用户选择的值更改动态

怎么可能? 感谢阅读:)

3 个答案:

答案 0 :(得分:0)

您可以使用.select事件来执行此操作。

$(document).ready(function(){

    $("#target").select(function(){

       console.log($(this).val());

    });

});

我希望您已包含jQuery个文件

 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

修改

<body>

.....
// At the end of the body because JS loads Synchronously 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</script>
 $(document).ready(function(){

        $("#target").select(function(){

           console.log($(this).val());

        });

    });
</script>

</body>

答案 1 :(得分:0)

这很有用。

$('#target').on('change', function () {
       var data = {
        platform: $('#target :selected').text()
        };
      console.log(data);

答案 2 :(得分:0)

尝试将this.temp = $('#target :selected').text();绑定到某个事件(.select),因此当事件被触发时,将执行所需的代码。从当前的方法来看,this.temp = $('#target :selected').text();只有在加载文档时才会执行,并给出默认值。

http://api.jquery.com/category/events/