JSP с параметром JavaScript внутри Javascript OnClick - PullRequest
0 голосов
/ 29 сентября 2011

Я хотел бы вставить вызов функции, чтобы получить параметр для моей функции JavaScript onclick. Я хотел бы сделать что-то вроде:

<input class="refreshbutton"
       type="button"
       id="searchUfficiPopup"
       onClick="javascript:postColorbox('/DeliDete/searchUfficiPopupBySettoreId', **'&settoreIdKey=${javascript:getSettoriId()}'**, 'tabUfficiForm', 'initScriptUffici')" 
       value="<fmt:message key="navigation.searchUffici"/>" />

Таким образом, Eclipse сообщает мне, что функция javascript:getSettoriId() не определена. Я определил эту функцию во внешнем файле .js, загруженном во время выполнения с помощью jQuery .getScript, поэтому я не хотел бы вставлять ее в jsp (в любом случае я пытался вставить ее в jsp, но в среде IDE все еще говорится, что функция не определено).

Функция postColorbox определяется как:

function postColorbox(url, parameters, formName, initScript)

Функция getSettoriId() возвращает значение ранее введенного элемента формы, Settori, которое мне нужно для выполнения ограниченного запроса (мне нужно получить все объекты Uffici, связанные с выбранным объектом Settori)

Сказал это, я хотел бы спросить у вас экспертов:

  1. Можно ли даже использовать функцию JavaScript в качестве параметра функции JavaScript, запускаемой по нажатию кнопки?

  2. Если я помещу эту функцию для вызова во внешний файл .js, сможет ли jsp ее увидеть и вызвать?

Спасибо всем за помощь! Andrea

Ответы [ 2 ]

0 голосов
/ 29 сентября 2011

Удалите onClick на вашем <input> и сделайте это с помощью обработчика событий jQuery:

$('#searchUfficiPopup').click(function() {
    var settoriId = getSettoriId();

    postColorbox('/DeliDete/searchUfficiPopupBySettoreId',
                 '&settoreIdKey=' + settoriId,
                 'tabUfficiForm',
                 'initScriptUffici');

    return false;
});
0 голосов
/ 29 сентября 2011

Вызов функций из элемента HTML не является предпочтительным способом. Если вы можете - просто назначьте элементу идентификатор или класс, а затем добавьте слушателя к нему, используя JavaScript при загрузке страницы.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...