2014-12-08 2 views
0
функции

Javascript:функции Javascript не работает с переменными, имеющими особым характером

var Id ; //global variables 
var Name; //global variables 
function getServiceId(id,name){ 
    Id=id; 
    Name = name; 
    alert(Id); 
} 

И это мой кода JSP

<core:forEach var="service" items="${listServiceBO}"> 
           <tr> 
            <td><a href="Javascript:void(0);"> 
              ${service.name} 
            </a></td> 
            <td>${service.multiplicity}</td> 
            <td>${service.scheduleType}</td> 

            <td> 
             <button type="button" id="serviceDeleteButton(${service.id})" name="serviceDeleteButton" 
              onclick="getServiceId(${service.id},'${service.name}');" title="Delete" 
              class="btn btn-link btn-inline" data-toggle="modal" 
              data-target="#deleteServiceModal"> 
              <span class="glyphicon glyphicon-remove"></span> 
              <span class="sr-only">Delete</span> 
             </button> 
            </td> 
           </tr> 
          </core:forEach> 

если мой service.name содержит какой-либо особый характер .... мои ценности не получают установлен в Javascript. Но если у меня нет специального символа в этом имени, тогда он работает нормально.

Из-за специального символа я не могу установить ни одно из двух значений. Любое решение ???

+1

вы можете поставить это на jsfiddle? – Todd

+0

http://stackoverflow.com/questions/1470768/how-to-escape-apostrophe-or-quotes-on-a-jsp-used-by-javascript – tachyonflux

ответ

0

Вы можете попробовать это:

onclick="getServiceId(${service.id},&quot;${service.name}&quot;);" 

Или, лучше всего сделать было бы избежать всех значений в Java:

Base64.encode(str); 

и Javascript делает расшифровывает:

decodeURIComponent(str); 
+0

Спасибо человеку. Это делает работу !! – Crawling

0

Редакция:

Постарайся просто избежать этого:

var Id ; //global variables 
var Name; //global variables 
function getServiceId(id,name){ 
    Id=id; 
    Name = escapeRegExp(name); 
    alert(Id); 
} 

function escapeRegExp(str) { 
    return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); 
} 

Jsp не конек, но, возможно, изменить это:

onclick="toggle('getServiceId(${service.id},'${service.name}')');" 

к:

onclick="toggle('getServiceId(${service.id}, \"${service.name}\")')" 
+0

Спасибо! Это хорошо работает. :) – Crawling

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