2014-12-23 3 views
2

Нажав кнопку, я вызываю функцию на стороне клиента JavaScript.XPages csjs передают переменную в функцию?

doIt("TEST"); 

«ТЕСТ» - это всего лишь идентификатор ярлыка на моем XPage. В этой функции я хочу использовать переменную, переданную как идентификатор. Что-то вроде:

function doIt(item){ 
alert(dojo.query("[id$=':item']").innerHTML); 
} 

ИЛИ

function doIt(item){ 
val = XSP.getElementById("#{id:item}").innerHTML; 
alert(val); 
} 

Я также попытался использовать это, что дает неопределенными:

val = dojo.query("[id$=':" + item + "']").innerHTML; 
alert(val); 

Если я жесткий код имя ID, как это так, то я получаю правильный внутреннийHTML элемента с идентификатором «TEST»:

val = XSP.getElementById("#{id:TEST}").innerHTML; 
alert(val); 

Где мой синтаксис неправильный при попытке написать эту очень простую строку кода, используемую переданную переменную?

ответ

1

Самый простой способ для вызова функции с полным ID:

doIt("#{id:Test}") 

и использовать его в функции

function doIt(item){ 
    alert(dojo.byId(item).innerHTML); 
} 
0

В «OnClick» клиент-события в кнопке, (внутри XPage или CC), клиент Идентификаторы могут быть вычислены, так что вы должны положить туда что-то вроде этого:

doIt("#{id:Test}"); // << "#{id:Test}" is computed in the server-side and the final client ID is sent to the browser 

Th en, в вашей библиотеке cjs (cjs-библиотеки не «оцениваются» перед отправкой на клиент, поэтому здесь вы не можете использовать выражения «# id: Test»), вы должны иметь что-то вроде:

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