переменный ввод в параметр функции javascript на странице JSP - PullRequest
2 голосов
/ 03 августа 2010

У меня следующий вызов функции внутри страницы jsp.

jQuery(function($){
   $("#product").mask("99/99/9999",{placeholder:" "});
});

Что я хочу сделать, это передать другую строку в функцию .mask. В псевдокоде это будет выглядеть примерно так:

String passedParam= someString  
if(test):
  passedParam = "someotherString"

jQuery(function($){
   $("#product").mask(passedParam,{placeholder:" "});
});

Будучи новичком в jsp и javascript, я не знаю, как правильно перевести этот псевдокод в реальный рабочий код.

Ответы [ 3 ]

1 голос
/ 03 августа 2010

Вы можете использовать taglibs / EL в JSP для печати строки, как будто это код JavaScript. Вы знаете, JSP работает на компьютере веб-сервера, генерирует HTML / CSS / JS и отправляет его веб-браузеру, который, в свою очередь, начинает выполнять код JS. Вы должны написать серверный код соответственно, чтобы его вывод HTML / CSS / JS выглядел правильно, когда вы делаете Просмотр исходного кода в веб-браузере.

Ваш псевдокод немного двусмысленный, но держу пари, что вы ищете что-то вроде этого:

jQuery(function($){
   $("#product").mask('${test ? 'someotherString' : mask}',{placeholder:" "});
});

(не обращайте внимания на подсветку синтаксиса, код правильный, маркер не распознает EL)

${} вещь EL (язык выражений) . Он будет обработан при запуске JSP. Он должен работать в тексте шаблона в соответствии с сервлетом 2.4 / JSP 2.0 (которому уже более 5 лет). ?: является хорошо известным условным оператором. Если выражение оценивается как true, то часть после ? будет назначена / напечатана (в данном случае литеральная строка "someotherString"), в противном случае часть после : (в данном случае переменная области действия mask).

Это закончится в браузере как

jQuery(function($){
   $("#product").mask('someotherString',{placeholder:" "});
});

или

jQuery(function($){
   $("#product").mask('someString',{placeholder:" "});
});

в зависимости от логического результата test.

0 голосов
/ 03 августа 2010

Обработайте переменную маски, используя JSP , затем поместите ее в код jQuery .

<%
   String mask = "";
   if (test) {
       mask = "something";
   }
   else {
       mask = "something else";
   }
%>

jQuery(function($){
   $("#product").mask('<%=mask%>',{placeholder:" "});
});
0 голосов
/ 03 августа 2010

Ну, в моем JSP я бы сделал что-то вроде этого:

<%
String mask = someString  
if(test):
  mask = "someotherString"
%>

jQuery(function($){
   $("#product").mask(<%= mask %>,{placeholder:" "});
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...