2013-09-16 6 views
0

Здесь у меня есть функция, которая вернуть мне список мест, объект на основе API Google Адреса Так функция findPlaces является:Изменить значение переменного с JQuery или JavaScript

function findPlaces(boxes,searchIndex) { 
    var request = { 
     bounds: boxes[searchIndex], 
      types: ["restaurant"] 
    }; 

Как я хочу изменить этот переменный запрос - виды на изменениях в меню списка, так что это HTML:

<label for="select"></label> 
     <select name="select" id="select"> 
      <option>restaurant</option> 
      <option>bar</option> 
      <option>museum</option> 
      <option>gas_station</option> 
     </select> 

SO мне нужно, когда я изменить значение в списке/меню для изменения также переменный запроса - тип [ «новое_значение»]

Как я могу это сделать?

Я стараюсь с этим кодом, но не работают:

function findPlaces(boxes,searchIndex) { 
    var request = { 
     bounds: boxes[searchIndex], 
      types: document.getElementById("select")[document.getElementById("select").selectedInd‌ex].value 
    }; 

, а также попробовать с этим кодом, но опять не работают:

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

     var values= $('#select option').map(function(){ 
         return this.value; 
        }).get(); 
     var index=jQuery.inArray($(this).val(), values); 

     findPlaces(boxes, index); 


    }); 
function findPlaces(boxes,searchIndex) { 
     var request = { 
      bounds: boxes[searchIndex], 
       types: [index] 
     }; 

Как я могу сделать это? Итак, сначала мне нужно изменить значение в HTML, изменить запрос переменной - types ["value"] и обновить функцию findPlaces ???

+0

ваш выбор должен иметь атрибут значение, во всяком случае попробовать использовать: 'types: [document.getElementById (" select "). значение]' –

+0

как, пожалуйста, напишите код ... –

+0

ok, работайте, но теперь мне нужно, чтобы onChange список/значения меню, чтобы снова вызвать функцию findPlaces ... –

ответ

0

Является ли singleSelect или multiSelect? Но в любом случае вы можете попробовать это:

function findPlaces(boxes,searchIndex) { 
    var request = { 
     bounds: boxes[searchIndex], 
     types: [$("#select").val()] 
    }; 
} 

Просто используйте объект JQuery, чтобы выбрать #select элемент и использовать это значение (выбранный элемент) в качестве типа.

+0

Я пишу сейчас, чтобы обновить: $ ("#select") .change (function() { route(); }); но ничего не случилось –

0

Вы должны позаботиться о том, чтобы использовать методы DOM внутри ваших объектов, потому что вы должны уважать модель mvc.

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

function Places(){ 
    var type = "";// you could set a default value 

    function findPlaces(boxes,searchIndex) { 
     var request = { 
      bounds: boxes[searchIndex], 
      types: [type] 
     }; 
    } 

    function changeType(value){ 
     type = value 
    } 

} 

Итак, вы используете js OO и можете вызвать changeType при изменении элемента выбора.

var _place = new Places(); 

$("#selectionElement").change(function(){ 
    _place.changeType($(this).value); 
}); 

EDIT1:

Я сделал пример на скрипке: http://fiddle.jshell.net/R3xb7/1/

EDIT2:

Пример с инструментом: http://jsbin.com/ujExolI/1/

+0

Я пишу сейчас $ ("#select") .change (function() { route(); }); но ничего не случилось ... –

+0

Посмотрите на первую строку, я создаю объект перед вызовом. –

+0

Я создал пример [здесь] (http://fiddle.jshell.net/R3xb7/1/) at fiddle –

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