2012-04-01 5 views
1

У меня есть следующий код в моем GSPКак я могу заставить grails remoteFunction работать?

<select onChange="${remoteFunction(action:'superior', controller:'employee', params: '\'name=\' + this.value')}"> 
    <option>first</option> 
    <option>second</option> 
</select> 

Конкретно, этот код в моем файле _form.gsp. Действие в EmployeeController выглядит следующим образом:

def superior() { 
    println 'in here' 
    println 'these are the params: ' + params 
} 

Это, вероятно, кажется бессмысленным, но моя цель здесь просто чтобы быть в состоянии назвать мое удаленное действие и передать выбранное значение. Но я ничего не вижу в консоли. Если я напечатаю URL прямо следующим образом:

app-name/employee/superior 

Я вижу свои заявления на печать на выходе. Так что мне здесь не хватает? Я в основном следил за тем, как установить это из документации grails (http://grails.org/doc/2.0.x/ref/Tags/remoteFunction.html), и у меня есть плагин JQuery. Если я использую просто функцию javascript в событии onChange (например, предупреждение), он отлично работает. Поэтому я уверен, что в моем браузере отключен javascript, я тестировал это с несколькими браузерами. Я почти уверен, что это что-то очень просто. Заранее спасибо.

ответ

1

Для меня этот фрагмент отлично работает в firefox и chrome. Так что, я думаю, у вас есть общая ошибка JavaScript на вашей странице. Проверьте это с помощью firebug. Если ошибки нет, дважды проверьте сгенерированный код для тега onchange вашего поля выбора.

+0

Я проверил javascript с firebug, я не видел ошибки. Это сгенерированный javascript для onchange 'jQuery.ajax ({type:" POST ", data:" name = "+ this.value, url:"/myapp/employee/superior ", success: function (data, textStatus) {}, error: function (XMLHttpRequest, textStatus, errorThrown) {}}); 'Чтобы проверить это, я создал совершенно новое приложение grails, создал класс домена сотрудника только с первым и последним именем, а затем создал представления и контроллеры. Затем я вставил блок выбора кода в свой _form.gsp и действие в мой контроллер и протестировал. Я пропустил шаг? – Mark

+0

Произошел ли HTTP-запрос? Можете ли вы проверить использование firebug? Если он есть, вы увидите его на вкладке консоли. – Chris

+2

Спасибо за этот совет. Firebug говорил, что «JQuery не определен». Поэтому я огляделся в Интернете для других с аналогичной ошибкой. Мне пришлось добавить следующее в главный раздел моего файла main.gsp. '', после чего я увидел свой вывод на консоли. Так что спасибо, что помогли мне отладить с другой точки зрения, я только отлаживал свой источник. – Mark