2013-11-19 2 views
0

Так что я пытаюсь другой маршрут к использованию автозаполнения в Грааль, вот что у меня до сих пор ...Grails JQuery-UI автозаполнение

«Объект» контроллер (да, я знаю, тот действительно плохое имя Теперь задним числом): -

def objectFinderAJAX = { 
    def objectsFound = Object.withCriteria{ 
     ilike 'objDesc', '%' + params.term + '%' 
    } 
    render (objectsFound as JSON) 
} 

в голове страницы у меня есть это: -

$(document).ready(function(){ 
    $("#eventList > tbody > tr").find('input[type=text]').each(function() { 
     $(this).autocomplete({ 
      source: '<g:createLink controller='Object' action='objectFinderAJAX'/>' 
     }); 
    }); 
});  

И в теле у меня есть таблица, которая выглядит, в упрощенной форме , так (это построено с помощью mult iple AJAX звонки при загрузке): -

<table id="eventList"> 
     <col width="500"> 
     <col width="750"> 
      <tr id = 0 class="even" name="main"> 
       <td colspan="3"> 
        <table id = "sub"> 
         <tr> 
          <td><b>Action</b></td> 
          <td><select style="width:375px;" name="events[0].id" required="required" id="events[0].id" ><option value="11" >Check a links displayed text</option></select></td> 
          <td> 
           <b>Object</b> 
          </td> 
          <td> 
           <input style="width:500px" id="autoLook[0].id" name="autoLook[0].id" value= "Browser"/> 
          </td> 
         </tr> 
        </table> 
       </td> 
      </tr> 
</table> 

Bot ничего не происходит, когда я печатаю anythign на входе, какие ключи? Я даже попытался добавить в println к контроллеру только для вывода чего-либо и не регистрировать его ... Я не вижу ничего, что происходит внутри firebug.

ответ

1

Я в конечном итоге вернуться к использованию richui, которые в значительной степени сделали все, что нужно из коробки, как только я решил проблему вокруг изменения идентификаторов и имен.

Оригинальный номер: here.

0

Один вопрос, который я вижу, это способ, которым использовался g:createlink.

Это должно быть так:

${createLink(controller: 'object' , action:'objectFinderAJAX')} 

Просто с помощью г: createLink сделает его в виде строки. Также соглашение о контроллере диктует использовать значение camelCase, которое должно начинаться с буквы нижнего регистра.

link это также может помочь вам получить его работу:

+0

Я изменил javascript, чтобы теперь читать, как вы уже сказали, но все еще не кубики, я помещал println в контроллер, но это никогда не запускается, так что мне не хватает чего-то фундаментального ... Спасибо за ссылку, что он отличается от того, как я сейчас работаю, поэтому потребуется немного переписать, поскольку добавление в этот автозаполнение было «приятным», что я думал, что это будет просто, и у меня есть большая рыба жарить на данный момент. Спасибо за указатель, я проверю его позже! :) – MorkPork

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