javascript
  • jquery
  • closures
  • 2012-01-09 8 views 0 likes 
    0

    Я использую плагин AJAX для автозаполнения JQuery следующим образом;Оценить свойство объекта, когда он используется

    $(document).ready(function() { 
        $("#myfield").autocomplete({ 
         serviceUrl:'autocomplete.asp?soc=' + $("#soc").val() 
        }); 
    }); 
    

    Это не работает, потому что (я предполагаю) свойство serviceUrl вычисляется один раз при загрузке страницы, в то время как я хочу, чтобы это изменить, чтобы отразить текущее значение $ («# SOC»).

    Могу ли я достичь этого с каким-то закрытием или мне нужно вручную изменить свойство на $("#soc").change()?

    +0

    Это точный код, который вы используете? потому что .val не дает никакого результата - вам понадобится .val(), чтобы он дал какой-либо результат. –

    +0

    Я использую '.val()', забыл скопировать в вопрос извините. – Flash

    +0

    Какую библиотеку автозаполнения вы используете? Я не вижу serviceURL в библиотеке jQueryUI. –

    ответ

    0

    Из документов это выглядит, как только вы создаете объект автозаполнения, параметры привязаны. Поэтому, если изменяется #soc, вам необходимо обновлять serviceUrl каждый раз.

    //create variable to store your autocomplete 
    var ac = $('#query').autocomplete(options); 
    //update it when #soc changes 
    $('#soc').change(function() { 
        ac.setOptions({ serviceUrl: 'autocomplete.asp?soc=' + $("#soc").val() }); 
    }); 
    
    Смежные вопросы