Если честно, я недостаточно профессионален в 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&portal:type=action&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','&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&portal:type=action&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','&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 *