2015-02-23 4 views
1

У меня есть выпадающий список в PHP Zend со следующим кодом:Как получить динамическое падение значения в JavaScript?

$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, чтобы получить текущее значение выпадающий:

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

Однако значение этой переменной не изменяется, когда я выбрать другое значение в раскрывающемся списке? Я хочу, чтобы переменная изменялась динамически в соответствии с значениями, выбранными пользователем.

Как это возможно? Спасибо за чтение :)

ответ

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> 

EDIT

<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> 
+0

Спасибо Void. Где я могу добавить тег скрипта? В файле JS? – ggwp

+0

Чуть выше $ (document) .ready(); – void

+0

См. Обновленный ответ. – void

0

Это работало.

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

Попробуйте привязки this.temp = $('#target :selected').text(); к некоторому событию (.select), Так что, когда событие уволит требуемый код будет выполнен. Из текущего подхода this.temp = $('#target :selected').text(); будет выполняться только при загрузке документа с заданием по умолчанию.

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

Смежные вопросы