onchange игнорируется в SelectBox - PullRequest
1 голос
/ 31 января 2012

Если честно, я недостаточно профессионален в JavaScript, но у меня такое ощущение, что моя проблема очень странная o.O

На самом деле, у меня есть SelectBox, содержащий список шаблонов. Если я выберу один, событие onchange хорошо обрабатывается вызовом Ajax и формой, отображаемой как выбранное. OK

Теперь, если случайно форма, содержащая SelectBox и содержащая onchange, событие игнорируется и ничего не происходит. NOK

<div class="UIDocumentFormController" id="UIDocumentFormController">    
 <div style="display: block;">
  <div class="UIFormWithoutAction  UISelectDocumentForm">
   <form class="UIForm" id="UISelectDocumentForm" action="/portal/private/acme/siteExplorer?portal:componentId=4e6208eb-b0d7-468c-bd01-6f63a38118fc&amp;portal:type=action&amp;uicomponent=UISelectDocumentForm" onsubmit="Change" method="post">
    <div><input type="hidden" name="formOp" value=""></div>
    <div class="HorizontalLayout">
     <table class="UIFormGrid">
      <tbody>
       <tr>
        <td class="FieldLabel">Sélectionner un formulaire</td>
        <td class="FieldComponent">
         <select class="selectbox" name="selectTemplate" onchange="javascript:eXo.webui.UIForm.submitEvent('4e6208eb-b0d7-468c-bd01-6f63a38118fc#UISelectDocumentForm','Change','&amp;objectId=selectTemplate')">
          <option value="exo:article">Article</option>
          <option value="exo:cssFile">CSS File</option>
          <option value="exo:event">Event</option>
          <option value="nt:file">File</option>
          <option selected="selected" value="exo:articletest">teeest</option>
         </select>
        </td>
       </tr>
  </tbody></table>
     </div>
    </form>
   </div>
  </div>
  <div style="display: block;">
   <div class="UIForm FormLayout"> 
    <form class="UIForm" id="UIDocumentForm" action="/portal/private/acme/siteExplorer?portal:componentId=4e6208eb-b0d7-468c-bd01-6f63a38118fc&amp;portal:type=action&amp;uicomponent=UIDocumentForm" method="post">
     <div><input type="hidden" name="formOp" value=""></div>
     <div class="HorizontalLayout">   
      <table class="UIFormGrid">
       <tbody>
        <tr>
         <td class="FieldLabel">Nom</td>
         <td class="FieldComponent"><input name="name" type="text" id="name"> * </td>
        </tr>
        <tr>
         <td class="FieldLabel">Select</td>
         <td class="FieldComponent">
          <select class="selectbox" name="introducerTitle" onchange="javascript:eXo.webui.UIForm.submitEvent('4e6208eb-b0d7-468c-bd01-6f63a38118fc#UIDocumentForm','Change','&amp;objectId=introducerTitle')">
           <option value="aaa">aaa</option>
           <option value="bbb">bbb</option>
          </select>
         </td>
        </tr>
       </tbody>
      </table>    
      <div class="UIAction"> 
       <table class="ActionContainer">
        <tr>
         <td>
          <div onclick="javascript:eXo.webui.UIForm.submitForm('4e6208eb-b0d7-468c-bd01-6f63a38118fc#UIDocumentForm','Save',true)" class="ActionButton LightBlueStyle">
           <div class="ButtonLeft">
            <div class="ButtonRight">
             <div class="ButtonMiddle"><a href="javascript:void(0);">Sauver comme brouillon</a></div>
            </div>
           </div>
          </div>               
         </td>
        </tr>
       </table>
      </div>
     </div>
    </form>
   </div>
  </div>
 </div>

странная и нелогичная вещь: Если я проверяю SelectBox (используя FireBug или любой подобный инструмент) и вносю какие-либо изменения (удаляю одну букву и перезаписываю) в вызываемой функции, SelectBox становится функциональным и запускается событие, вызываемое onchange.

Примечание: вызов Ajax создает формы с кодом Java, и я думаю, что это проблема рендеринга.

Кто-то сталкивался с этой проблемой раньше ??

Большое спасибо за внимание к моему вопросу, даже если вы не можете помочь :) 1025 *

1 Ответ

0 голосов
/ 20 февраля 2012

Решено

На самом деле есть еще одна функция JavaScript, которая переопределяет эту функцию submitEvent.Так что это не будет называться.Вот почему, когда я делаю изменение с Firebug, оно пересматривается и затем успешно вызывается.

Надежда, которая помогает другим.

...