2015-09-01 2 views
0

Я знаю, что этот вопрос может иметь много дубликатов сейчас, но я столкнулся с этим во время работы над моей LifeRay проекта ...ошибка в получении поля, JavaScript ошибка Minifier

Я размещения извлекаемых полей базы данных в моем JSP с помощью делая это ,,

<portlet:resourceURL var="imageResourceURL1"> 
<portlet:param name="image" value="nbi"/> 
</portlet:resourceURL> 

<script type="text/javascript"> 
    function checkUploads(){ 
     <% 
      Blob nbi=null, omb=null, san=null, cs=null, birthCert=null, affid=null, waiver=null; 
      try{ 

       attachments a = attachmentsLocalServiceUtil.getAttachmentsByUserId(); 

       nbi = a.getNbi_clearance(); 
       omb = a.getOmbudsman_clearance(); 
       san = a.getSandiganbayan_clearance(); 
       cs = a.getCivil_service_clearance(); 
       birthCert = a.getBirthcertificate(); 
       affid = a.getAffidavit_of_no_relation(); 
       waiver = a.getAuth_waiver(); 

       out.println(nbi); 
       out.println(omb); 
       out.println(san); 
       out.println(cs); 
       out.println(birthCert); 
       out.println(affid); 
       out.println(waiver); 

      }catch(Exception e){ 
       out.println(e); 
      } 
     %> 

     /* check nbi */ 
     if(nbi == null || nbi == ""){ 
      $(".nbiUpload").empty().append(
      '<input type="file" accept="image/*" name="<portlet:namespace />nbiFile" id="nbi" style="display:none" />' 
      +'<input type="text" id="nbiFilename" />' 
      +'<button type="submit" id="nbiBrowse" onclick="$("#nbi").click()">Browse</button>' 
      +'<button type="button" id="nbiUpload" name="<portlet:namespace />nbisubmit">Upload</button>' 
      +'<script type="text/javascript">' 
       +'$("#nbi").change(function(e) {' 
        +'$("#nbiFilename").val(this.files[0].name);' 
       +'});' 
       +'$("#nbiUpload").click(function(event){' 
        +'event.preventDefault();' 
       +'});' 
       +'$("#nbiBrowse").click(function(event){' 
        +'event.preventDefault();' 
       +'});' 
      +'< /script>'); 
     }else{ 
      $(".nbiUpload").empty().append(
      '<a id="nbiclearance" href='<%=imageResourceURL1.toString()%>' rel="lightbox" style="cursor:pointer">' 
      +'<img src='<%=imageResourceURL1.toString()%>' alt="no Image" id="img_nbi_clearance" style="height:100px;width:130px;cursor:pointer;" border="0"></a>'); 
     } 
    } 
</script> 

, что я не могу понять, являются ошибки, получая ошибки Im такие как эти ,,

18:28:13,916 ERROR [http-bio-8080-exec-160][MinifierUtil:111] 3: 38: missing ; before statement 
18:28:13,917 ERROR [http-bio-8080-exec-160][MinifierUtil:111] 7: 33: missing ; before statement 
18:28:13,918 ERROR [http-bio-8080-exec-160][MinifierUtil:111] 24: 10: syntax error 
18:28:13,918 ERROR [http-bio-8080-exec-160][MinifierUtil:111] 26: 39: missing) after argument list 

может быть, я просто ошибки в синтаксисе, поэтому, пожалуйста, помогите мне это .. :)

+0

в разделе 'else', я думаю, вы пропустили +:' else { $ (".nbiUpload"). Empty(). Append ( '' +'no Image'); } ' – Sachin

+0

удалены некоторые ошибки, я думаю, сэр ,,, вы обнаружили другие ошибки? У меня все еще есть синтаксические ошибки, оставленные сэр .. –

ответ

1

Не давая точное место проблемы (что трудно, когда все можно сделать, это прочитать код, который генерирует вывод), вот как бы я хотел, чтобы вы сами его отлаживали: ваши проблемы, похоже, связаны с Minifier - это компонент, который удаляет лишние пробелы и разрывы строк и предполагает, что ваш код сценария действителен , Хороший трюк, чтобы обойти это, временно удалить тег <script>. Замените его на (script) и (/script), откройте страницу, найдите этот временный контент, и его не трогайте. Но теперь вы можете увидеть, что именно получает в ваш HTML-документ.

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

Другим вариантом является: добавить ?strip=0 в URL-адрес - это должно отключить JS-фильтр Liferay. У вас все еще будет недопустимый JS-код, но теперь инструменты разработчика браузера могут напрямую указать вас на сомнительное место.

+0

теперь я попробую! : D еще раз спасибо. kock: D –

+0

Я согласен с этим ответом –

0

Я думаю, что вы пропустили, чтобы добавить «+» в остальное части сценария ..

if(nbi == null || nbi == ""){ 
    $(".nbiUpload").empty().append(
    '<input type="file" accept="image/*" name="<portlet:namespace />nbiFile" id="nbi" style="display:none" />' 
    +'<input type="text" id="nbiFilename" />' 
    +'<button type="submit" id="nbiBrowse" onclick="$("#nbi").click()">Browse</button>' 
    +'<button type="button" id="nbiUpload" name="<portlet:namespace />nbisubmit">Upload</button>' 
    +'<script type="text/javascript">' 
     +'$("#nbi").change(function(e) {' 
      +'$("#nbiFilename").val(this.files[0].name);' 
     +'});' 
     +'$("#nbiUpload").click(function(event){' 
      +'event.preventDefault();' 
     +'});' 
     +'$("#nbiBrowse").click(function(event){' 
      +'event.preventDefault();' 
     +'});' 
    +'< /script>'); 
} 
else 
{ 
    $(".nbiUpload").empty().append(
    '<a id="nbiclearance" href=' + '<%=imageResourceURL1.toString()%>' + ' rel="lightbox" style="cursor:pointer">' 
    +'<img src=' + '<%=imageResourceURL1.toString()%>' + ' alt="no Image" id="img_nbi_clearance" style="height:100px;width:130px;cursor:pointer;" border="0"></a>'); 
} 
+0

Я сделал это, но некоторые ошибки остались, я не могу больше заметить, кроме неправильно закрытого тега скрипта ,, –